Как работать с разными часовыми поясами?

Avenus

Under Glory Yield
Как работать с разными часовыми поясами?

Привет, всем! :)

Не могу разобраться, как организовать правильную работу сайта в случае с разными часовыми поясами?

К примеру, я пишу сообщение кому-то в другой стране:
В 6:00 по моему времени, а у него только 4:00 (там же где и сервер).

Пишу в БД дату и время сервера, т.е. 4:00 с помощью time().
При этом надо показать это время для меня и для него правильно.
А как? Голову сломал...

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

Думаю, верно было бы писать в БД время по Гринвичу, а показывать каждому для своего часового пояса.

Может кто сталкивался с такой проблемой? Подскажите, как решить?
 

Avenus

Under Glory Yield
Splurov, я знаю, но это не то, что подходит.
К тому же в CONVERT_TZ надо указывать time_zone.
Как я его узнаю?

И мне необходимо показывать время не из БД, т.к. я пишу в нее на будущее, а вывод на сайте идет сразу.

Вот и не пойму как определить средствами PHP локальное время, а не сервера?

-~{}~ 18.02.09 07:44:

Или на PHP этого не сделать?
а только через JavaScript... :(
 

x-yuri

Новичок
в phpbb как эта проблема решена? При регистрации указывается часовой пояс. В других форумах, думаю, так же
 

Avenus

Under Glory Yield
В общем, сделал на JavaScript... потому как видимо иначе никак...
 

x-yuri

Новичок
а тебе не подходит, чтобы пользователь указывал свой часовой пояс?
 

Splurov

Новичок
Avenus
PHP не знает о клиенте ничего, кроме того что клиент ему передал (var_dump($_SERVER)), как видим часовой пояс не передаётся. Или просить пользователя явно указать или при первом посещении javascript-ом отправлять на сервер и сохранять в виде ip - timezone (или userId - timezone, если пользователь зарегистрированный).
Менять все даты на JS выглядит как-то не очень универсально (как вы например в RSS будете менять?).
 
Сверху