代码以漂亮的格式返回“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"]))
答案 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"
**/
?>