Skip to content

All topics  /  PHP

Return All Dates Between Two Dates In An Array In PHP

PHP

Teams applying “Return All Dates Between Two Dates In An Array In PHP” in a production project can use best staff scheduling apps choose that fit to record implementation, review and debugging time, then compare that effort with tests and shipped functionality instead of treating activity as performance by itself.

Before copying the example into a live application, confirm version-specific behaviour with the PHP project and test it against the project’s actual database and runtime.

Dec 13, 2021

Hi Dev,

This example is Return all dates between two dates in an array in PHP.

Given two dates (start date and end date) and the task is to return all the dates in an array.

This is a return array formate data in two date range all date.

So let's start following step.

Example : 1


This example, use date interval class which stores fixed amount of time (in years, months, days, hours etc) or relative time string in the format that DateTime.

<?php

  
    // Function to get all the dates in given range
    function getDatesFromRange($start, $end, $format = 'Y-m-d') {

      
        // Declare an empty array
        $array = array();

      
        // Variable that store the date interval
        // of period 1 day
        $interval = new DateInterval('P1D');

  
        $realEnd = new DateTime($end);
        $realEnd->add($interval);

  
        $period = new DatePeriod(new DateTime($start), $interval, $realEnd);

  
        // Use loop to store date into array
        foreach($period as $date) {                 
           $array[] = $date->format($format); 
        }

  
        // Return the array elements
        return $array;
    }

  
    // Function call with passing the start date and end date
    $Date = getDatesFromRange('2021-12-01', '2021-12-05');

  
    var_dump($Date);

  
?>

Output:

array(5) {
  [0]=>
  string(10) "2021-12-01"
  [1]=>
  string(10) "2021-12-02"
  [2]=>
  string(10) "2021-12-03"
  [3]=>
  string(10) "2021-12-04"
  [4]=>
  string(10) "2021-12-05"
}

Example : 2

This example use strtotime() function which is used to convert an English textual date-time description to a UNIX timestamp. It returns a timestamp on success, False otherwise.

<?php

  
    // Declare two dates
    $Date1 = '01-10-2010';
    $Date2 = '05-10-2010';

  
    // Declare an empty array
    $array = array();

  
    // Use strtotime function
    $Variable1 = strtotime($Date1);
    $Variable2 = strtotime($Date2);

  
    // Use for loop to store dates into array
    // 86400 sec = 24 hrs = 60*60*24 = 1 day
    for ($currentDate = $Variable1; $currentDate <= $Variable2;$currentDate += (86400)) {
        $Store = date('Y-m-d', $currentDate);
        $array[] = $Store;
    }

  
    // Display the dates in array format
    print_r($array);
?>

Output:

Array
(
    [0] => 2010-10-01
    [1] => 2010-10-02
    [2] => 2010-10-03
    [3] => 2010-10-04
    [4] => 2010-10-05
)