Php 周而复始

Php 周而复始,php,date,datetime,loops,Php,Date,Datetime,Loops,我想返回特定范围内的所有天数。 我的想法是将开始日期和结束日期转换为unix时间戳,并在其中循环添加86400(一天中的秒): 这是错误的: for($i=$start; $i<=$end; $i+86400) for($i=$start;$i最佳实践是使用类 错误的运算符。请尝试使用$i+=86400而不是$i+86400。在使用时,切换到并明确添加“1天”而不是“86400秒”.@DCoder正是为这种类型的任务创建的。如果要分配某些值,则需要assignemnt运算符:-如果要迭代

我想返回特定范围内的所有天数。
我的想法是将开始日期和结束日期转换为unix时间戳,并在其中循环添加86400(一天中的秒):

这是错误的:

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

for($i=$start;$i最佳实践是使用类


错误的运算符。请尝试使用
$i+=86400
而不是
$i+86400
。在使用时,切换到并明确添加“1天”而不是“86400秒”.@DCoder正是为这种类型的任务创建的。如果要分配某些值,则需要assignemnt运算符:-如果要迭代某些内容,则应采用可遍历的方法,如;)-还要注意,并非所有的天都有86400秒。只是说,并不是你想的那样。注释$i+=86400是$i=$i+86400的简写代码注释:当从标准时间切换到夏时制或其他方式时,或者当增加闰秒或类似的时间时,这会导致问题,最好使用Salata的方法。你还有
$next_day=strotime(“+1天”,“当前戳”)
如果您不想使用
DatePeriod
,但同意
DatePeriod
是最佳做法。
Tuesday, 01.01.13
Tuesday, 01.01.13
Tuesday, 01.01.13
...
for($i=$start; $i<=$end; $i+86400)
for($i=$start; $i<=$end; $i+=86400)
$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");
}