-1

我想返回特定范围之间的所有天数。
我的想法是将开始和结束日期转换为 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
...
4

2 回答 2

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");
}
于 2013-06-23T13:02:25.447 回答
5

这是错误的:

for($i=$start; $i<=$end; $i+86400)

应该

for($i=$start; $i<=$end; $i+=86400)

注意原始代码的+=insetad +。在您的代码中,您没有为变量分配新值,只是执行没有结果的数学公式

于 2013-06-23T13:01:24.790 回答