У меня есть система, которая генерирует отчеты и рассылает электронные письма пользователям.
Пользователи могут выбирать, в какое время они хотят отправлять отчеты, я сохраняю их желаемое время в MySQL.
Серверы работают в формате GMT / UTC, и я сохраняю запрошенное время отчета в базе данных также в формате GMT / UTC.
Когда они выбирают желаемое время с веб-страницы, я конвертирую часовой пояс PHP (например, Азия / Гонконг или Америка / Чикаго) и экономлю время, которое требуется для их отчета, в mysql в GMT / UTC.
Затем я запрашиваю базу данных и отправляю их отчет в запрошенное время. Работает нормально, пока не наступит … летнее время.
Конечно, не во всех местах есть летнее время, и не все места настраиваются на одинаковое количество минут и не на одну и ту же дату каждый год, и не все места настраиваются на одни и те же даты года.
Как я могу рассчитать правильное время, чтобы система работала круглый год?
Я использую PHP для хранения часовых поясов и сохранения даты / времени в mysql, так что это два доступных мне инструмента.
Задача ещё не решена.
Других решений пока нет …