Время MySQL и время PHP не то же самое - PullRequest
8 голосов
/ 09 июня 2009

Когда я использую current_timestamp с MySQL, я получаю правильное время, но когда я использую

$mysqldate = date( 'Y-m-d H:i:s' );

Я получаю дату с задержкой на час (например, 4:42 вечера - 5:42 вечера). Я понял, что обе функции используют местное время сервера - кто-то может объяснить разницу?

Спасибо.

Ответы [ 4 ]

9 голосов
/ 09 июня 2009

Глобальное системное время будет установлено через файл / etc / localtime, который будет либо символической ссылкой, либо копией файла зоны из / usr / share / zoneinfo / на большинстве систем. Приложения будут использовать это как значение по умолчанию.

PHP может переопределить это несколькими способами:

  1. date.timezone в php.ini
  2. установка переменной окружения TZ, например, putenv("TZ=US/Central");
  3. date_default_timezone_set функция (в PHP> = 5.1.0)

MySQL может переопределить это, выполнив следующий запрос сразу после подключения:

SET time_zone = 'US/Central'
2 голосов
/ 09 июня 2009

Есть настройки языка php, он берется из php.ini, а не из системного времени

1 голос
/ 09 июня 2009

Возможно, ваш PHP-сервер считает, что находится в другом часовом поясе, или использует другие правила локали и перехода на летнее время.

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