$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/>";
没关系,我得到了正确的结果。
谢谢你。
答案 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中看到它接受的内容。