Почему мое время () отключено на один час в php? - PullRequest
11 голосов
/ 29 ноября 2009

Я добавляю текущую дату и время в свою базу данных, используя следующий код:

$current_date_time = time();
echo date('n/j/y g:ia',$current_date_time);

Появляется как 29.11.09 00:38, когда должно быть 29.11.09, 11:38

Время опережает один час. Я нахожусь в часовом поясе Тихого океана, а мой хостинг-провайдер - в Юте, горном часовом поясе. Может ли это быть причиной того, что он опередил на час?

Как мне решить эту проблему? Нужно ли убрать час из времени? Если да, то как мне это сделать? Или есть какой-то другой способ учета различий часовых поясов, чтобы он отображался во времени Тихоокеанского часового пояса?

1 Ответ

23 голосов
/ 29 ноября 2009

Вы решаете это, явно устанавливая часовой пояс в своих PHP-скриптах. Вы можете сделать это с помощью date_default_timezone_set():

date_default_timezone_set('America/Los_Angeles');

Вот список поддерживаемых PHP часовых поясов .

Вы также можете попробовать тестовый скрипт, вызывающий date_default_timezone_get(), чтобы посмотреть, на что он на самом деле настроен, чтобы убедиться, что это действительно проблема.

...