当使用以下
echo date('D',strtotime("2013-06-16T06:00:00-07:00"));
echo date('D',strtotime("2013-06-16T18:00:00-07:00"));
第一个返回Sun
,第二个返回Mon
。我真的不知道为什么或如何纠正!Date:"2013-06-16T06:00:00-07:00"
是我从XML文件中检索的数据。timestamp
在最后对UTC
进行了更正,不确定这是否会产生错误。
谢谢你的帮助
要获得预期的结果,您应该考虑使用DateTime()
:
<?php
echo date('D',strtotime("2013-06-16T06:00:00-07:00")) . "'n";
echo date('D',strtotime("2013-06-16T18:00:00-07:00")) . "'n";;
$dt1 = new DateTime("2013-06-16T06:00:00-07:00");
$dt2 = new DateTime("2013-06-16T18:00:00-07:00");
echo $dt1->format('D') . "'n";
echo $dt2->format('D') . "'n";
输出Sun
Mon
Sun
Sun
小提琴
这是因为Date表示的时间在date.timezone
设置中指定的时区内。因此,将时区-07:00
解析并转换回date.timezone
时区。
要理解这个想法,只需在日期字符串
中添加e
echo date('D e',strtotime("2013-06-16T06:00:00-07:00"));
echo date('D e',strtotime("2013-06-16T18:00:00-07:00"));
看到的例子。
最好使用DateTime()。它没有这样的限制。