2015-06-26 3 views
2

Я использую time() для записи текущего времени в моем приложении PHP.PHP Неправильная зона времени При использовании времени()

Я базируюсь в Великобритании, поэтому мы используем часовой пояс UTC. Это означает, что летом/зимой мы переключаемся с часовой пояс GMT на BST (GMT GMT). Проблема заключалась в том, что time() по-прежнему использует часовой пояс GMT, что означает, что он отстает на 1 час. Как это сделать, чтобы показать время BST, которое на 1 час раньше GMT?

Когда я повторяю время, это на 1 час.

То, что я пробовал:

  • Добавление следующие фрагменты кода:

    date_default_timezone_set ("Europe/London");

    ini_set ("date.timezone", "Europe/London");

  • Повторная установка PHP 5.5, так что обновления, хранящие временные интервалы, обновляются.

Благодаря

+0

'времени()' дает Вам метку времени Unix, который не имеет контекст часового пояса. Это в UTC. –

+0

Итак, вы знаете решение? – user3495256

+0

Зависит от того, что вы на самом деле пытаетесь сделать с меткой времени. –

ответ

1

Найдено мое решение.

Проблема не со временем(), так как это всего за несколько секунд до даты.

При появлении даты, вместо использования gmdate() вместо этого используйте date().

Это будет учитывать любые установленные по умолчанию часовые пояса, установленные вами в файле document/ini.

0

использование gmdate()

string gmdate (string $format [, int $timestamp = time() ])

php.net и Different results for date() and gmdate()

+0

Фактически, Я уже использовал gmdate, и он не работал. Как только я начал использовать date(), он обратил внимание на мои настройки в часовом поясе – user3495256

Смежные вопросы