您好我为日期创建了一个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;
}
?>
答案 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" ));
}