La clase DatePeriod
En esta página
Introducción#
Representa un período de fechas.
Un período de fechas permite iterar a través de un conjunto de fechas y horas, ocurriendo a intervalos regulares, durante un período determinado.
Sinopsis de la clase#
DatePeriod
implements
IteratorAggregate
Constantes
public
const
int
DatePeriod::EXCLUDE_START_DATE
public
const
int
DatePeriod::INCLUDE_END_DATE
Propiedades
public
readonly
DateTimeInterface
null
start
public
readonly
DateTimeInterface
null
current
public
readonly
DateTimeInterface
null
end
public
readonly
DateInterval
null
interval
public
readonly
int
recurrences
public
readonly
bool
include_start_date
public
readonly
bool
include_end_date
Métodos
Constantes predefinidas#
DatePeriod::EXCLUDE_START_DATE int
Excluye la fecha de inicio, utilizada por DatePeriod::__construct.
DatePeriod::INCLUDE_END_DATE int
Incluye la fecha de fin, utilizada por DatePeriod::__construct.
Propiedades#
recurrences
La cantidad mínima de instancias devueltas por el iterador.
Si el número de recurrencias ha sido explícitamente pasado mediante el argumento $recurrences en el constructor de la instancia DatePeriod, entonces esta propiedad contiene ese valor, más uno si la fecha de inicio no ha sido desactivada por DatePeriod::EXCLUDE_START_DATE, más uno si la fecha de fin ha sido activada por DatePeriod::INCLUDE_END_DATE.
Si el número de recurrencias no ha sido explícitamente pasado, entonces esta propiedad contiene el número mínimo de instancias devueltas. Esto sería 0, más uno si la fecha de inicio no ha sido desactivada por DatePeriod::EXCLUDE_START_DATE, más uno si la fecha de fin ha sido activada por DatePeriod::INCLUDE_END_DATE.
<?php
$start = new DateTime('2018-12-31 00:00:00');
$end = new DateTime('2021-12-31 00:00:00');
$interval = new DateInterval('P1M');
$recurrences = 5;
// recurrencias explícitamente definidas por el constructor
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";
$period = new DatePeriod($start, $interval, $recurrences);
echo $period->recurrences, "\n";
$period = new DatePeriod($start, $interval, $recurrences, DatePeriod::INCLUDE_END_DATE);
echo $period->recurrences, "\n";
// recurrencias no definidas en el constructor
$period = new DatePeriod($start, $interval, $end);
echo $period->recurrences, "\n";
$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";
El ejemplo anterior mostrará:
5
6
7
1
0
Ver también DatePeriod::getRecurrences.
include_end_date
Incluye o no la fecha de fin en el conjunto de fechas recurrentes.
include_start_date
Si se debe incluir la fecha de inicio en el conjunto de fechas recurrentes o no.
start
La fecha de inicio del período.
current
Durante la iteración, esto contendrá la fecha del día en el período.
end
La fecha de fin del período.
interval
Una especificación de intervalo repetitivo ISO 8601.
Historial de cambios#
| Versión | Descripción |
|---|---|
| 8.4.0 | Las constantes de clase ahora están tipadas. |
| 8.2.0 | La constante DatePeriod::INCLUDE_END_DATE y la propiedad include_end_date han sido añadidas. |
| 8.0.0 | La clase DatePeriod ahora implementa IteratorAggregate. Anteriormente, solo Traversable era implementada. |