Отображение временных меток MySQL по местному времени

У меня есть база данных MySQL с большим количеством данных, хранящихся с отметками времени в UTC.

Когда пользователь запрашивает эту базу данных, я хочу, чтобы они могли просматривать данные, но в их локальном часовом поясе.

Я бы предпочел не рассчитывать смещение каждый раз и изменять метку времени с помощью PHP-кода. Есть ли другой путь?

Solutions Collecting From Web of "Отображение временных меток MySQL по местному времени"

Вы можете использовать функцию localtime() для получения локального времени и поиска соответствующих записей из базы данных.

Можно установить часовой пояс для каждого соединения с mysql следующим образом:

 SET time_zone = 'America/Los_Angeles'; 

или

 SET time_zone = '-8:00'; 

Но для меня лучшим решением будет localtime();

Там, где я работаю, мы поддерживаем клиентов по всему миру, и нам стало проще даже установить системное время сервера для UTC. Это позволяет нам обеспечить согласованную регистрацию и временные метки базы данных, и если нам нужно добавить серверы в пул в другой часовой пояс, нам не нужно беспокоиться о том, правильно ли установлено местное время (b / c – это уже UTC).

Однако есть стоимость, как указано в OP, наше приложение должно вычислять временные интервалы. Мы назначаем часовой пояс для наших клиентов, и пользователь, подписавший на клиентский сайт, получает часовой пояс клиента, поэтому нам приходится каждый раз вычислять дату / отметки времени для презентации. Мы иногда просматриваем наши приложения, и эти изменения в часовом поясе едва регистрируются.

В конце концов, это действительно зависит от вас и вашей ситуации, когда вы имеете дело с изменениями часового пояса.