从php中的时区标识符返回本地时间 [英] Return local time from unix timestamp with timezone identifier in php

查看:203
本文介绍了从php中的时区标识符返回本地时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在网页上有一个下拉框,它将时区标识符作为值(但是如果这是更好的选择,我可以更改它来保存GMT偏移量)。目前,用户将像美国/丹佛这样保存他的时区。



我需要将unix时间戳转换为用户的本地时间,以便在页面的另一部分显示。什么是最好的方式来完成这个?



最好将GMT偏移量存储在数据库中,并将其用于时间计算?有人可以在这里指向正确的方向吗?



谢谢!

解决方案

最简单的方法是使用 DateTime 与:

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

时区可以随意更改,导致格式化功能重新计算本地时间。 >

I have a dropdown box on a webpage that takes a timezone identifier as the value (however I can change it to save the GMT offset if that is a better choice). Currently a user would be saving something like "America/Denver" as his / her time zone.

I need to convert a unix timestamp into the user's local time for display in another portion of the page. What is the best way to accomplish this?

Would it be better to store the GMT offset in the database and use that for a time calculation? Can someone please point me in the right direction here?

Thanks!

解决方案

The easiest approach would be to use DateTime with:

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

The timezone can be changed at will to cause the format function to recalculate the local time.

这篇关于从php中的时区标识符返回本地时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆