Devuelve todas las fechas entre dos fechas en una array en PHP

Dadas dos fechas (fecha de inicio y fecha de finalización) y la tarea es devolver todas las fechas en una array.

Ejemplo 1: en este ejemplo, use la clase de intervalo de fecha que almacena una cantidad fija de tiempo (en años, meses, días, horas, etc.) o una string de tiempo relativa en el formato 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);
  
?>
Producción:

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"
}

Ejemplo 2: Este ejemplo usa la función strtotime() que se usa para convertir una descripción textual de fecha y hora en inglés a una marca de tiempo UNIX. Devuelve una marca de tiempo en caso de éxito; de lo contrario, es falso.

<?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);
?>
Producción:

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

Publicación traducida automáticamente

Artículo escrito por Swarnakamal Dhyawala y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *