Amit Dhamu

Writes Code

Loop Between Date Range

Say you have two dates - a start date and an end date and you want to loop through and show the dates in between that range, try the following function which will take a start date and end date and output the results into an array.

$start = "2012-01-01 12:00:00";
$end = "2012-08-01 12:00:00";

function dateRange($first, $last, $step = '+1 month', $format = 'Y-m-d H:i:s' ) {
    $dates = array();
    $current = strtotime($first);
    $last = strtotime($last);

    while( $current <= $last ) {   
        $dates[] = date($format, $current);
        $current = strtotime($step, $current);
    }
    return $dates;
}

// I want to print out the dates in between my range on a monthly basis
echo dateRange($start, $end);

Array
(
    [0] => 2012-01-01 12:00:00
    [1] => 2012-02-01 12:00:00
    [2] => 2012-03-01 12:00:00
    [3] => 2012-04-01 12:00:00
    [4] => 2012-05-01 12:00:00
    [5] => 2012-06-01 12:00:00
    [6] => 2012-07-01 12:00:00
    [7] => 2012-08-01 12:00:00
)

// Alternatively, if you wanted to show each day between your date range
echo dateRange($start, $end, "+1 day");


date range / loop / array / php

← CSS3 Animation Conditional Vs Ternary →