Search code examples
phpdatetimephp4

PHP: get next 13 dates from date?


I am trying to get an array of a date plus the next 13 dates to get a 14 day schedule starting from a given date.

here is my function:

$time = strtotime($s_row['schedule_start_date']); // 20091030
$day = 60*60*24;
for($i = 0; $i<14; $i++)
{
    $the_time = $time+($day*$i);
    $date = date('Y-m-d',$the_time);
    array_push($dates,$date);
}

But it seems to be repeating a date when the month switches over..

this is what I get:

2009-10-30|2009-10-31|2009-11-01|2009-11-01|2009-11-02|2009-11-03|2009-11-04|2009-11-05|2009-11-06|2009-11-07|2009-11-08|2009-11-09|2009-11-10|2009-11-11

Notice that 2009-11-01 is repeated. I cannot figure out why?

What am I doing wrong?

Thanks!!


Solution

  • I would use strtotime

    $start = strtotime($s_row['schedule_start_date']);
    $dates=array();
    for($i = 1; $i<=14; $i++)
    {
        array_push($dates,date('Y-m-d', strtotime("+$i day", $start)));
    }
    print_r($dates);