думаю, даже если ничего нового, статейку можно повесить на стену. когда-нибудь да что-то забудете :)
а материал переводной (фраза "Далее перевод" в начале статьи) или нет? если переводной, почему не указан автор?
Прекрасная подборка. Но всё это касается работы с временной зоной, которая как-то была задана. А вот как узнать временную зону пользователя, кроме прямого вопроса "введите Вашу временную зону"? :-)
Еще никак не могу придумать, как получить временную зону (точнее, часовое смещение в данный момент времени) для точки с заданными координатами. Ведь есть же карта часовых поясов, на которой они описаны довольно простыми кривыми... Теоретически, можно проверять принадлежность точки областям внутри этих кривых, если они где-то заданы...
Сходу - аяксовый запрос времени клиента или геоип. Конечно, на компе может стоять левое время, и человек может сидеть на иностранном провайдере и вообще через прокси, но по-моему, разумно при регистрации показывать юзеру полученное таким(и) способам(и) его же время и спрашивать что-нибудь в духе "нам кажется, у вас щас вот столько-то времени. угадали? ;)" и вариант изменения этого времени. Именно времени! Потому что поиск своего часвого пояса - не такая простая задача для людей, которые с этим не сталкивались или сталкивались, но редко. По времени - удобней.
Ну и верифаить это счастье можно при каждом новом визите, мол, "ой, у вас время сменилось. а хотите его и тут сменить?".
Да, конечно, это время сервера, это ресурсы, запросы и т.д. Но кто тут всё-таки "высшее звено пищевой цепочки (ц)", а? ;)
Как вариант, возможно. Для зарегистрированных пользователей так и буду делать. Даже без верификации. Один раз указал и не надо надоедать пользователю... Если надо зайдет в настройки и сменит.
Хорошо, вот только КАК автоматически задетектить TimeZone клиента? Где-то видел, что в JavaScript есть функция, дающая офсет браузерной зоны в часах, но это не дает полной стандартной TZ. Кроме того, как показывает практика, показ на сайте локального времени вводит клиента в заблуждение, поскольку он уже привык к "официальному" (напр. московскому) времени. А выводить дату в формате с указанием зоны неэстетично. Поэтому возможным простым решением будет указывать на сайте серверную дату/время.
1) time() - Возвращает количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970, 00:00:00 GMT) до текущего времени.
2) http://ru2.php.net/manual/ru/function.gm… пример и комментарии по этой ссылке ответят на все вопросы
посмотрите на его 3 пункт, он там пишет про время сервера.
Кстати хороший тон держать время на сервере в GMT, в связи с чем программист должен сразу понимать работу с временными зонами
За это я люблю Хабр: "сидишь, краем мозга думаешь, что очень хорошо бы в проекте предусмотреть то-то или то-то", и +- пару дней появляется заметка по теме - читаешь её, копаешь и используешь знания!
Работа с временными зонами в PHP