Given two dates (start date and end date) and the task is to return all the dates in an array.
Example 1: In 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( '2010-10-01' , '2010-10-05' ); var_dump( $Date ); ?> |
array(5) { [0]=> string(10) "2010-10-01" [1]=> string(10) "2010-10-02" [2]=> string(10) "2010-10-03" [3]=> string(10) "2010-10-04" [4]=> string(10) "2010-10-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 ); ?> |
Array ( [0] => 2010-10-01 [1] => 2010-10-02 [2] => 2010-10-03 [3] => 2010-10-04 [4] => 2010-10-05 )