PHP - 循环中递增日期

时间:2015-04-21 07:05:08

标签: php date

$end_date = new DateTime($_GET['end_date']); 
$last_day_this_month = $end_date->format('d-m-Y'); //outputs 10-03-2015

$start_date = new DateTime($_GET['start_date']);
$loop_dates = $start_date->format('d-m-Y'); //outputs 22-04-2015

        for($i = $loop_dates; $i <= $last_day_this_month; $i++)
        {
                echo $i;echo '<br>';


        }

使用下面的循环增加年份而不是日期

for($i = $loop_dates; $i <= $last_day_this_month; $i++)

如何使用循环遍历/递增开始/结束日期,以便输出从10-03-201522-04-2015的所有日期。

P.S:我正在使用PHP5.3,因此希望采用面向对象的方法而不是使用strtotime

2 个答案:

答案 0 :(得分:7)

您可以尝试以下代码

$begin = new DateTime('2013-02-01');
$end = new DateTime('2013-02-13');

$daterange = new DatePeriod($begin, new DateInterval('P1D'), $end);

foreach($daterange as $date){
    echo $date->format("d") . "<br>";
}

答案 1 :(得分:3)

  

试试这个

<?php
$start = '2013-08-25';
$end = '2013-08-29';
$datediff = strtotime($end) - strtotime($start);
$datediff = floor($datediff/(60*60*24));
for($i = 0; $i < $datediff + 1; $i++){
    echo date("Y-m-d", strtotime($start . ' + ' . $i . 'day')) . "<br>";
}
?>