DateTime :: разность и конец летнего времени

В прошлые выходные у нас был конец летнего времени, и часы были переведены назад на 1 час. Я обнаружил странное поведение DateTime :: diff (), когда сравниваемые даты находятся в разное время: весеннее и зимнее время.

new DateTime('2015-10-28 12:50:00')->diff(new DateTime('2015-10-19 13:20:00'))

result = {DateInterval} [15]
y = 0
m = 0
d = 9
h = -1   # negative hour!
i = 30
s = 0

когда разница больше часа, все в порядке:

new DateTime('2015-10-28 12:50:00')->diff(new DateTime('2015-10-19 14:20:00'))

result = {DateInterval} [15]
y = 0
m = 0
d = 8
h = 22
i = 30
s = 0

Любые идеи, как это исправить? Это ошибка в PHP?

2

Решение

Да, это ошибка PHP, которая в настоящее время не обрабатывает переходы DST. Отчеты об ошибках # 51051 (все еще открыт) и # 55253 (исправлено в PHP 5.3.9) опишите проблемы, с которыми вы столкнулись. Лучше всего выполнять все вычисления даты в UTC, чтобы избежать этой проблемы. Видеть это сообщение для дальнейших деталей

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]