MySQL: сохранить часовой пояс сервера или часовой пояс пользователя?

Я собираюсь хранить даты на имени пользователя на моем сайте, но я не знаю, что является наиболее логичным решением.

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

<?php // my server has for example America/New_York timezone $user_timezone = "Europe/Rome"; date_default_timezone_set ($user_timezone); $date = date ('Ymd H:i:s'); $sql = "UPDATE users SET user_last_modify = '$date', user_timezone = '$user_timezone' WHERE user_id = 'some id' LIMIT 1;"; $res = mysql_query ($sql); ?> 

Мой вопрос: какое наилучшее решение, сохранить часовой пояс сервера или использовать часовой пояс пользователя?
и если я использую часовой пояс пользователя, должен ли я сохранить имя часового пояса тоже, как в моем примере?

Solutions Collecting From Web of "MySQL: сохранить часовой пояс сервера или часовой пояс пользователя?"

Я бы рекомендовал использовать часовой пояс сервера или UTC, а не хранить разные данные для каждого пользователя. Таким образом, ваша база данных будет полностью согласованной, и вы можете выполнять некоторые операции, такие как сравнения, без необходимости для каждой записи извлекать столбец user_timezone и выполнять преобразование (которое не является полностью бесплатным)

Использовать UTC . Это сэкономит вам много часов разочарования.

Местное время пользователя – это вопрос презентации – гораздо проще конвертировать в / из местного времени для данного пользователя, чем отслеживать TZ полей даты каждой записи в базе данных.

Даже если использование часового пояса сервера может заманчиво, правила DST могут меняться очень быстро (см.: DST 2009 Argentina : правительство приняло решение не использовать DST за 1 неделю до того, как это должно было случиться); в некоторых случаях сам часовой пояс может измениться (см. Время в Индиане ). Определение UTC вряд ли подвергнется таким резким изменениям.

(Рассказ о времени сервера и локальном времени: имел сервер на западном побережье США, переместил его на восточное побережье США, приложения использовали серверное время, все ад сломалось. С виртуализацией можно легко и быстро перемещать серверы на разные континенты .)

Просто используйте:

 time();