改变时间格式

时间:2014-01-07 10:17:23

标签: php datetime

抱歉我的英语。 我正在尝试这个:

$startTime = strtotime('2013-12-23');
$endTime = strtotime('2013-12-31');

for ($i = $startTime; $i <= $endTime; $i = $i + 86400) {

    echo date('m.d.Y', $i)."<br/>";

    echo date('d-m-Y', strtotime(date('m.d.Y', $i)))."<br />";

}

那么,为什么我得到:

12.23.2013
01-01-1970
12.24.2013
01-01-1970
...

如果我尝试

echo date('m.d.Y', $i)."<br/>";
echo date('d-m-Y', $i)."<br/>";

没关系,我得到了正确的结果。

谢谢你。

2 个答案:

答案 0 :(得分:4)

m.d.Y是格式strtotime无法解析的。使用其他格式(例如'c')使其正常工作。

这是来自php手册

  

注意:m / d / y或d-m-y格式的日期通过查看来消除歧义   在各个组件之间的分隔符处:如果分隔符是a   斜线(/),然后是美国m / d / y;而如果   separator是短划线( - )或点(。),然后是欧洲d-m-y格式   假设。为避免潜在的歧义,最好使用ISO 8601   (YYYY-MM-DD)日期或DateTime :: createFromFormat()尽可能。

答案 1 :(得分:0)

strtotime不采用格式'm.d.Y'

您可以在docs中看到它接受的内容。