Часовые пояса для разных пользователей

Я создаю скрипт, который позволяет пользователю выбрать свой часовой пояс...

Если я должен сделать эту работу, как я могу хранить даты в базе данных, чтобы каждый часовой пояс читал его и показывал правильную дату в своем часовом поясе?

Я храню дату как GMT, а затем, когда пользователь с выбранным часовым поясом GMT +10 просматривает элемент в моем скрипте, я показываю эту дату в GMT +10 раз?

есть ли лучший способ сделать это?

примеры было бы здорово :)

3 ответов


сохранение часовых поясов в UTC в базе данных, безусловно, путь.


UTC, как вы это делаете

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


в MYSQL поля метки времени всегда сохраняются внутри UTC, но запросы будут возвращать форматированные строки на основе часового пояса вашего сервера базы данных, поэтому ваш сервер БД, вероятно, должен быть установлен в UTC для упрощения вещей. Передайте этот материал прямо в объект DateTime, затем вы можете использовать его setTimezone() функция, чтобы заставить его работать в часовом поясе, который вы хотите.

вы также можете использовать для меня() установить часовой пояс в php, который будет использоваться для остаток сценария.