日期循环无法正常工作

时间:2015-11-30 12:57:07

标签: php loops while-loop

您好我为日期创建了一个while循环。我想每次增加我的1个月。但它不起作用,而是像这样递增: 2009/06/01 2009/07/01 2009/09/01 2009/12/01 2010/04/01 2010/09/01

这是不正确的。我不明白为什么它不会增加1个月。任何帮助将不胜感激

 <?php

$startdate = "2009/06/01";
$enddate = "2009/12/31";

$start = strtotime($startdate);
$end = strtotime($enddate);

$f = 0;
$t = 6;
$d = 0;
$currentdate = $start;
while($f < $t )
{
       $cur_date = date('Y/m/d', $currentdate);


       $currentdate = strtotime($f . ' month', $currentdate);



          echo  $cur_date . "<br />";
        //echo  $f . "<br />";
        $f = $f + 1;

}
?>

1 个答案:

答案 0 :(得分:3)

它不会起作用,因为你每次都不会加1个月....你在第一次迭代中加1个月,在第二次迭代中加2,在第三次加3中等等因为你每次迭代都会增加$f的价值。

$begin = new DateTime('2009-06-01');
$end = new DateTime('2009-12-31');
$end = $end->modify('+1 day');
$interval = DateInterval::createFromDateString('1 month');

$period = new DatePeriod($begin, $interval, $end);

foreach($period as $dt) {
    var_dump($dt->format( "Y-m-d" ));
}