PHP, MySQL, часовые пояса и данные, охватывающие изменение часового пояса - PullRequest
0 голосов
/ 08 апреля 2019

Я завладел системой, которая отправляет сообщения. Дата отправки сообщения - TIMESTAMP(14) в MySQL. Сообщения могут быть запланированы для отправки в будущем.

Система базируется в Великобритании, где часовыми поясами являются GMT или BST (GMT + 1), в зависимости от времени года.

В существующем коде система устанавливает текущий часовой пояс в MySQL, используя SET time_zone. Прямо сейчас часовой пояс - BST, и в результате при запросе отправленных дат, скажем, января, когда часовой пояс был по Гринвичу, результаты показываются как один час, однако даты для сообщений, отправленных в апреле, отображаются правильно.

Если я удаляю команду SET time_zone, обе даты отображаются правильно, однако я полагаю, что если (во время BST) они запланируют отправку сообщения в ноябре (который снова будет по Гринвичу), то в конечном итоге сообщения будут отправлено на один час раньше, но я не уверен, как это проверить и / или подтвердить (кроме ожидания изменения часовых поясов).

Как мне лучше всего справиться с обеими ситуациями, получая (отображая) даты и устанавливая даты (отправляющие) правильно для прошлых, текущих и будущих сообщений?

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