php strtotime с будущей датой и временем возвращает метку времени меньше текущей метки времени - PullRequest
0 голосов
/ 15 мая 2018

Я запускаю php на моем сервере.Документы для функции strtotime говорят, что она попытается проанализировать строку даты в метку времени Unix (количество секунд с 1 января 1970 г. 00:00:00 UTC).

Так что мойсценарий тестирования:

метка времени для строки "2018-05-15 14:30" : 1526387400 => strtotime ("2018-05-15 14:30")

Текущее время по Гринвичу 2018-05-15 13: 26 : 1526390790 => time ()

Здесь я ожидал, что время в 14:30 будет больше 13:26,Но, несмотря на будущую строку даты, значение меньше текущей отметки времени.

Сервер, который я тестирую, работает в GMT + 2 timezone = date ('Z') => 7200. Я предполагал, что согласно документам, функция strtotime возвращает второес начала эпохи без учета смещения часового пояса.Я не уверен, что смещение часового пояса портит цифры.

Любое понимание этого было бы очень полезно.

1 Ответ

0 голосов
/ 15 мая 2018

С strtotime() вручную

Каждый параметр этой функции использует часовой пояс по умолчанию, если в этом параметре не указан часовой пояс.Будьте осторожны, чтобы не использовать разные часовые пояса в каждом параметре, если это не предусмотрено.

С time() ручной

Возвращает текущее измеренное времяв секундах, прошедших с начала эпохи Unix (1 января 1970 г. 00:00:00 по Гринвичу).

Таким образом, ваше strtotime () соответствует GMT + 2, а time () - GMT

...