Вернуть местное время из метки времени Unix с идентификатором часового пояса в php - PullRequest
3 голосов
/ 23 марта 2011

У меня есть выпадающий список на веб-странице, в котором в качестве значения используется идентификатор часового пояса (однако я могу изменить его, чтобы сохранить смещение по Гринвичу, если это лучший выбор).В настоящее время пользователь будет сохранять что-то вроде «Америка / Денвер» в качестве своего часового пояса.

Мне нужно преобразовать метку времени Unix в местное время пользователя для отображения в другой части страницы.Каков наилучший способ сделать это?

Было бы лучше сохранить смещение GMT ​​в базе данных и использовать его для вычисления времени?Может кто-нибудь, пожалуйста, укажите мне правильное направление здесь?

Спасибо!

1 Ответ

5 голосов
/ 23 марта 2011

Самый простой подход - использовать DateTime с:

$t = new DateTime();
$t->setTimestamp( $time=time() );
$t->setTimeZone(new DateTimeZone("America/Denver"));
print $t->format(DateTime::RFC850);

Часовой пояс можно изменить по желанию, чтобы функция форматирования пересчитала местное время.

...