我希望返回特定范围之间的所有日子 我的想法是将开始和结束日期转换为unix时间戳并循环遍历它们添加86400(一天中的几秒):
<?php
$start = strtotime('2013-01-01');
$end = strtotime('2013-02-01');
for($i=$start; $i<=$end; $i+86400)
{
echo date("l, d.m.y", $i) . "\n";
}
?>
不幸的是,我只得到同一天:
Tuesday, 01.01.13
Tuesday, 01.01.13
Tuesday, 01.01.13
...
答案 0 :(得分:7)
最佳做法是使用DatePeriod
类。
$start = new DateTime('2013-01-01');
$end = new DateTime('2013-02-01');
foreach (new DatePeriod($start, new DateInterval('P1D'), $end) as $date) {
echo $date->format("l, d.m.y\n");
}
答案 1 :(得分:5)
这是错误的:
for($i=$start; $i<=$end; $i+86400)
应该是
for($i=$start; $i<=$end; $i+=86400)
请注意原始代码+=
的{{1}}插入内容。在您的代码中,您没有为变量赋值,只执行没有结果的数学公式