отображение нескольких часовых поясов или часов часового пояса в php

#php #javascript #mysql #timezone

#php #javascript #mysql #Часовой пояс

Вопрос:

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

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

или альтернативно

я бы хотел, чтобы все часы часового пояса США отображались на веб-странице

как это можно сделать?

Комментарии:

1. Не могли бы вы сохранить время как UTC / Zulu / Epoch / GMT в базе данных и позволить javascript обрабатывать часовой пояс? Или вы хотите, чтобы часовой пояс был связан с местоположением базы данных, а не с текущим местоположением компьютера?

Ответ №1:

В базе данных я бы сохранил исходное время встречи в UTC. У меня также было бы поле в таблице пользователей для назначения категории TZ.

В эту дату активен простой if / then для перехода на летнее время, а затем преобразуйте время.

Я бы использовал php для всего этого. Поскольку вы можете объединить запрос базы данных, чтобы включить изменение UTC TZ в один и тот же запрос. Затем, при необходимости, настройте переход на летнее время.

  • извлеките время собрания из таблицы собраний и информацию о TZ из таблицы пользователей (тот же запрос)
  • проверьте переход на летнее время
  • отрегулируйте время на основе вышеизложенного
  • отправка результатов на страницу.

Ответ №2:

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

Ответ №3:

Это можно сделать с помощью javascript и (cookie witch может сохранить часовой пояс клиента или ajax для отправки его обратно на сервер). Затем вы можете использовать его в PHP-скрипте для внесения изменений. В javascript используйте метод getTimezoneOffset(). Вот простой скрипт для его использования:

     <script type="text/javascript">
      var d = new Date()
      var gmtHours = -d.getTimezoneOffset()/60;
      document.write("The local time zone is: GMT "   gmtHours);
    </script>