отображение нескольких часовых поясов или часовых поясов в php - PullRequest
0 голосов
/ 20 октября 2011

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

.

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

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

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

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

Ответы [ 3 ]

1 голос
/ 20 октября 2011

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

Простое if / затем для летнего времени активно в эту дату, а затем преобразовать время.

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

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

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

0 голосов
/ 20 октября 2011

Это можно сделать с помощью javascript и (cookie может сохранить часовой пояс клиента или 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> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...