Часовые пояса PHP и как их отображать [дубликаты]

0

Как вы решаете "проблему" разных часовых поясов? Скажем, у меня есть какая-то община, где люди могут публиковать сообщение о статусе. Проблема в том, что пользователи живут во всем мире, а время в настоящее время просто shwon в одном формате...

Как узнать часовой пояс пользователей, как сохранить и отобразить его?

  • 0
    В общем, ваш вопрос слишком широк. См. Дублированный вопрос, связанный для получения дополнительной информации по этому вопросу, а также для поиска и просмотра других вопросов с тегом часового пояса . Кроме того, называть часовые пояса "проблемой" глупо. Они являются просто аспектом хронометража людьми на планете Земля. Есть много задокументированных и легко упоминаемых по этой теме, а также множество решений в php и mysql, которые вы пометили.
  • 0
    Спасибо, Мэтт - я думаю, что кто-то еще здесь прекрасно знал, о чем я говорил, когда упомянул часовые пояса как «проблему». Все они, включая меня, не считают часовые пояса «проблемой реального мира». Спасибо за философский ненужный ответ, но если это делает счастливым чувство объятия или что-то ......
Теги:
timezone

3 ответа

1

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

  • Сохраните все даты в формате GMT.
  • Получите часовой пояс пользователя вручную, выбрав часовой пояс из раскрывающегося списка при регистрации или автоматически. Получение пользовательского часового пояса автоматически немного сложнее: вам нужно получить часовой пояс от javascript и сделать запрос ajax на сервер, чтобы сохранить часовой пояс.
  • Отобразите все даты в интерфейсе, преобразованном в пользовательский часовой пояс (я создал Trait для laravel, который делает этот шаг автоматически, поэтому я думаю, что вы можете сделать что-то подобное в своей системе)
1

Используй это. pageloom

Используйте его в javascript для получения часового пояса:

<script language="javascript">
function getTimezoneName() {
    timezone = jstz.determine()
    return timezone.name();
}
</script>
0

На стороне клиента вы можете использовать: Moment.js для извлечения часового пояса: https://momentjs.com/timezone/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню