从 php 中带有时区标识符的 unix 时间戳返回本地时间
我在网页上有一个以时区标识符作为值的下拉框(但是,如果这是更好的选择,我可以更改它以保存 GMT 偏移量).目前,用户会将美国/丹佛"之类的内容保存为他/她的时区.
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.
我需要将 unix 时间戳转换为用户的本地时间,以便在页面的另一部分显示.实现这一目标的最佳方法是什么?
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?
将 GMT 偏移量存储在数据库中并用于时间计算会更好吗?有人可以在这里指出我正确的方向吗?
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?
谢谢!
推荐答案
最简单的方法是使用 DateTime
与:
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.
相关文章