Часовые пояса для разных пользователей - PullRequest
7 голосов
/ 25 марта 2010

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

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

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

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

Примеры были бы великолепны:)

Ответы [ 3 ]

4 голосов
/ 25 марта 2010

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

1 голос
/ 25 марта 2010

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

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

1 голос
/ 25 марта 2010

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

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

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