2015-04-21 2 views
2
$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>'; 


     } 

Использование ниже шагом цикл года, а не датыPHP - инкремент Дата в Петле

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

Как я могли пройти/прирост через начало/дату окончания, используя цикл так, что он выводит все даты из 10-03-2015 до 22-04-2015.

PS: Я использую PHP5.3 и так хочется, чтобы пойти с объектно-ориентированного подхода вместо использования StrToTime

+0

Вы считали ['DatePeriod'] (http://php.net/manual/en/class.dateperiod.p л.с.)? –

+0

вычислить количество дней между этими двумя датами и применить '$ date-> modify ('+ 1 день');' change '+ 1' с' $ i' –

ответ

5

Вы можете попробовать ниже код

$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>"; 
} 
+0

Он выводит '10-20', а не специально из' 10 -MAR до 20-APR' – Slimshadddyyy

0

Попробуйте один

<?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>"; 
} 
?> 
Смежные вопросы