使用以下
时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
进行了更正,不确定是否会产生错误。
感谢您的帮助。
答案 0 :(得分:1)
这是因为日期表示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"));
请参阅example。
你使用DateTime()会更好。它没有这样的限制。
答案 1 :(得分:1)
要获得预期结果,您应该考虑使用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