Функции php strtotime и date используют разные часовые пояса - PullRequest
0 голосов
/ 26 ноября 2010

strtotime рассчитывается с 1970-01-01 (UTC), а дата использует мой часовой пояс, т.е. Америка / Нью-Йорк Простой пример:

Где отметка времени равна 0:

var_dump(date('Y-m-d h:i:s', 0)); 

отпечатков: 1969-12-31 07:00:00

Где он должен вернуть 0, он возвращает

var_dump(strtotime('1969-12-31 07:00:00'));
-43200

Теперь, очевидно, я мог бы добавить часовой пояс к дате, т.е.

strtotime($date . ' -5') 

и это сработало бы.

Но я везде использую функцию strtotime.

Я пытался играть с _$ENV['TZ'] и date_timestamp_get(); Но я не могу их синхронизировать.

Я также изменил date.timezone в php.ini для America / New_York и до сих пор ничего.

Наконец, форсирование часового пояса с помощью date_timestamp_set('UTC') работает нормально, и обе даты синхронизируются. Но мне нужен часовой пояс с сервера.

Пожалуйста, сообщите, у меня нет идей

1 Ответ

2 голосов
/ 26 ноября 2010
var_dump(date('Y-m-d H:i:s', 0)); 

h! = H в дате.Сейчас 19:00, и вы пытаетесь узнать время с 1969-12-31 07:00:00 утра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...