Я работаю над приложением PHP (CodeIgniter)/MySQL, которое позволяет пользователям выбирать, когда будет опубликовано их сообщение в блоге. Как я разработал его для работы до сих пор:Сохранение определенных значений даты и времени для пользователей в разных часовых поясах
- Пользователь задает часовой пояс в своем профиле.
- Пользователь устанавливает дату публикации публикации в блоге. Предполагается, что эта дата/время основывается на часовом поясе пользователя.
- Основанный на часовом поясе пользователя дата публикации конвертируется в UTC (00:00).
- Преобразованная дата хранится как DATETIME в mysql.
- Сервер часто преобразует сохраненные значения DATETIME в часовой пояс сервера и публикует контент, когда наступает их время.
Мне было интересно, есть ли лучший способ справиться с этой ситуацией, учитывая, что мой сервер БД и веб-сервер находятся на разных машинах в облаке и могут также изменить местоположение.
хранить все как utc и конвертировать по мере необходимости, когда приходит время его отображения. –
@MarcB - Это то, что он сказал, что он делает (по крайней мере, для пунктов 1-4). Но ключ находится в первом предложении: «* будет опубликован» (будущее время) –
@matt: сохраняется. принять любую дату, которую пользователь предоставляет, но предположим, что это их местный часовой пояс, а затем конвертировать в utc при хранении.если этот язык не изменит свои правила часового пояса между датой публикации и датой публикации, то дата utc все равно будет такой же. –