Как отобразить все время и дату на сайте в локали GMT пользователя? - PullRequest
0 голосов
/ 11 августа 2010

Я храню все значения даты и времени как метку времени Unix.Зарегистрированные пользователи могут установить личный язык GMT в своем профиле.Что я должен сделать, чтобы отображать все время и дату на сайте в локали пользователя GMT?

Спасибо

Ответы [ 2 ]

1 голос
/ 11 августа 2010

Нет такой вещи, как "язык пользователя GMT".Вы должны ссылаться на часовой пояс пользователя .

. Вы можете конвертировать метки времени unix в даты в часовом поясе пользователя следующим образом:

$timestamp = ...;
$tz = new DateTimezone("Europe/Lisbon"); //substitute by the user's timezone
$d = new DateTime("@$timestamp");
$d->setTimezone($d);
echo $d->format(DateTime::RFC822);

Если у вас есть только GMTсмещение, вы можете использовать:

$tz = new DateTimezone("Etc/GMT-12");

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

0 голосов
/ 11 августа 2010

С PHP:

date("Y-m-d H:i:s", $timestamp);

С MySQL:

FROM_UNIXTIME()
...