在亚利桑那州时间打印东海岸时间戳

时间:2010-04-20 21:03:54

标签: php

代码以漂亮的格式返回“datesubmitted”。 “提交日期”字段是东海岸时间的时间戳。我怎么能把它作为亚利桑那时间打印出来?现在,这将比东海岸时间晚3个小时。

现在,我很乐意这样做。但是,在一年的其他时间(没有使用夏令时),亚利桑那州的时间仅比东海岸时间晚2小时。有没有办法可以打印下面的日期,以便始终正确显示亚利桑那时间?或者,当夏令时停止并开始时,我是否需要更改代码?

提前致谢,

约翰

date('l, F j, Y &\nb\sp &\nb\sp g:i a &\nb\sp &\nb\sp  \N\E\W &\nb\sp \Y\O\R\K &\nb\sp \T\I\M\E', strtotime($row["datesubmitted"]))

1 个答案:

答案 0 :(得分:1)

查看DateTime class。它的setTimezone()方法应该适合您(请参阅用户贡献说明中的示例)。它知道夏令时。有关支持的时区列表,请参阅listIdentifiers()

手册中的修改示例,今天下午2点转换到纽约时间:

<?php
$MSTTZ = new DateTimeZone('MST');
$ESTTZ = new DateTimeZone('America/New_York');

$dt = new DateTime('04/20/2010 2:00 pm', $MSTTZ);
var_dump($dt->format(DATE_RFC822), $dt->format('U'));
$dt->setTimezone($ESTTZ);
var_dump($dt->format(DATE_RFC822), $dt->format('U'));

/** Output:
string(29) "Tue, 20 Apr 10 14:00:00 -0600"
string(10) "1271793600"
string(29) "Tue, 20 Apr 10 16:00:00 -0400"
string(10) "1271793600"
**/
?>