0

使用以下内容时

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不确定这是否会产生错误。

谢谢你的帮助。

4

2 回答 2

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"));

例子

最好使用DateTime()。它没有这样的限制。

于 2013-06-16T17:11:14.830 回答
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

小提琴

于 2013-06-16T17:13:52.017 回答