Настройки часового пояса в MySQL - с помощью NOW ()? - PullRequest
1 голос
/ 24 июня 2011

SO. Что связано с Выполнение вычислений в MySQL против PHP

В настоящее время наша база данных предполагает, что системное время указано в UTC, и использует его для вычисления NOW (). PHP явно устанавливает часовой пояс как UTC (поэтому он невосприимчив к сдвигам часового пояса сервера).

Случайный сдвиг часовых поясов на сервере испортил эти отношения на уровне базы данных, и сейчас я пытаюсь найти идеальную конфигурацию:

  1. настроить Mysql в UTC, но также с точки зрения того, что:

  2. наше приложение может быть на чужом сервере, где у них может быть другой TZ (поэтому я не могу установить часовой пояс на уровне mysql / server). Как мне настроить его на определенном уровне базы данных?

Ответы [ 2 ]

3 голосов
/ 24 июня 2011

Вы должны проверить UTC_TIMESTAMP () ;это гарантирует, что поле временной метки всегда будет UTC в базе данных.Сделайте, чтобы ваш PHP-скрипт смещался от информации браузера пользователя.Это также можно сделать с помощью DATE_ADD / DATE_SUB или лучше CONVERT_TZ () .

1 голос
/ 24 июня 2011

PHP должен установить его перед сохранением в базе данных. Установите для него значение GMT, а затем вычисляйте при отображении на основе часового пояса пользователя, если необходимо.

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