Это странно вопрос, который я столкнулся с часовым поясом и DateTime, я` краток:DateTime часового пояса, когда формат
var_dump($obj->getTime1());
var_dump($obj->getTime2());
дает мне следующее (что хорошо, часовой пояс хорошо и т.д ..) :
object(DateTime)#379 (3) {
["date"]=>
string(19) "2016-03-28 19:00:00"
["timezone_type"]=>
int(3)
["timezone"]=>
string(12) "Europe/Paris"
}
object(DateTime)#378 (3) {
["date"]=>
string(19) "2016-03-13 19:00:00"
["timezone_type"]=>
int(3)
["timezone"]=>
string(12) "Europe/Paris"
}
Но когда я хочу форматировать (на тех же линиях) в строку:
var_dump($obj->getTime1()->format(DateTime::ISO8601));
var_dump($obj->getTime2()->format(DateTime::ISO8601));
я получаю:
string(24) "2016-03-28T19:00:00+0200" <-- Noticed that it has a different timezone
string(24) "2016-03-13T19:00:00+0100"
Я ненавижу DateTime
PS: Когда я создаю 2-й объект DateTime Я клонировать первый и я добавить DateInterval:
$someTime = clone $obj->getTime1();
$someTime ->sub(new \DateInterval('P'.$days.'D'));
$event->setTime2($someTime);
Пахнет как DST (летнее время) ... – Naruto
также 'var_dump ($ obj-> getTime1() -> date)'. Может быть, вы хотите этого? –
@Anant: Мне нужно в формате 'ISO8601' –