$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-2015
到22-04-2015
的所有日期。
P.S:我正在使用PHP5.3
,因此希望采用面向对象的方法而不是使用strtotime
答案 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>";
}
?>