Хорошо, я в тупике. Вот два объекта даты, которые у меня есть:
// $startDate value
DateTime::__set_state(array(
'date' => '2017-11-05 00:00:00.000000',
'timezone_type' => 3,
'timezone' => 'America/Chicago',
))
// $endDate value
DateTime::__set_state(array(
'date' => '2017-11-05 23:59:00.000000',
'timezone_type' => 3,
'timezone' => 'America/Chicago',
))
Они оба имеют одинаковую информацию о часовом поясе. Однако когда я бегу $startDate->format(DateTime::ISO8601)
а также $endDate->format(DateTime::ISO8601)
Я получаю разные смещения часового пояса.
// $startDate->format(DateTime::ISO8601)
2017-11-05T00:00:00-0500
// $endDate->format(DateTime::ISO8601)
2017-11-05T23:59:00-0600
Любая идея относительно того, что может быть причиной этого?
-0500
а также -0600
в DateTime::ISO8601
Формат не часовые пояса, а смещения от UTC.
Начиная с 2:00 воскресенья, 12 марта 2017 года, смещение составляет -6: 00 от UTC. В 2 часа ночи воскресенье, 5 ноября 2017 года, летнее время будет выключено. С тех пор смещение будет на 1 час меньше до следующего перехода на летнее время.
Других решений пока нет …