Clase DatePeriod
La clase DatePeriod crea una secuencia de fechas entre un punto inicial y uno final con un intervalo determinado.
Acepta parámetros: la fecha inicial en forma de objeto DateTime, el intervalo en forma de objeto DateInterval, el número de repeticiones o la fecha final.
Permite iterar todas las fechas en el rango especificado.
Sintaxis
new DatePeriod(DateTime $start, DateInterval $interval, int $recurrences);
new DatePeriod(DateTime $start, DateInterval $interval, DateTime $end);
Ejemplo
Creemos un período de 5 fechas con un intervalo de 1 día:
<?php
$start = new DateTime('2025-01-01');
$interval = new DateInterval('P1D');
$period = new DatePeriod($start, $interval, 4);
foreach ($period as $date) {
echo $date->format('Y-m-d') . '<br>';
}
?>
Resultado de la ejecución del código:
'2025-01-01'
'2025-01-02'
'2025-01-03'
'2025-01-04'
'2025-01-05'
Ejemplo
Creemos un período entre dos fechas con un intervalo de 1 semana:
<?php
$start = new DateTime('2025-01-01');
$end = new DateTime('2025-02-01');
$interval = new DateInterval('P1W');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $date) {
echo $date->format('Y-m-d') . '<br>';
}
?>
Resultado de la ejecución del código:
'2025-01-01'
'2025-01-08'
'2025-01-15'
'2025-01-22'
'2025-01-29'
Véase también
-
clase
DateTime,
para trabajar con fecha y hora -
clase
DateInterval,
para trabajar con intervalos de fechas