(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Représente une période de dates.
Une période de dates permet des itérations à travers un jeu de dates et d'heures, survenant à intervalle régulier, sur une période donnée.
$start
,$interval
,$recurrences
,$options
= 0$start
,$interval
,$end
,$options
= 0DatePeriod::EXCLUDE_START_DATE
Exclut la date de début, utilisée par DatePeriod::__construct().
DatePeriod::INCLUDE_END_DATE
Inclut la date de fin, utilisée par DatePeriod::__construct().
La quantité minimale d'instances retournée par l'itérateur.
Si le nombre de récurrences a été explicitement passé par l'intermédiaire
du paramètre $recurrences
dans le constructeur de l'instance
DatePeriod, alors cette propriété contient cette valeur,
plus un si la date de début n'a pas été désactivée par
DatePeriod::EXCLUDE_START_DATE
, plus
un si la date de fin a été activée par
DatePeriod::INCLUDE_END_DATE
.
Si le nombre de récurrences n'a pas été explicitement passé, alors cette
propriété contient le nombre minimum d'instances retournées. Cela serait
0
, plus un si la date de début n'a pas
été désactivée par DatePeriod::EXCLUDE_START_DATE
,
plus un si la date de fin a été activée par
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;
// récurrences explicitement définies par le constructeur
$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";
// récurrences non définies dans le constructeur
$period = new DatePeriod($start, $interval, $end);
echo $period->recurrences, "\n";
$period = new DatePeriod($start, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
echo $period->recurrences, "\n";
?>
L'exemple ci-dessus va afficher :
Voir aussi DatePeriod::getRecurrences().
Inclut ou non la date de fin dans le jeu de dates récurrentes.
S'il faut inclure la date de début dans l'ensemble des dates récurrentes ou non.
La date de début de la période.
Pendant l'itération, cela contiendra la date du jour dans la période.
La date de fin de la période.
Une spécification d'intervalle répétitif ISO 8601.
Version | Description |
---|---|
8.2.0 |
La constante DatePeriod::INCLUDE_END_DATE et
la propriété include_end_date ont été ajoutées.
|
8.0.0 | La classe DatePeriod implémente désormais IteratorAggregate. Auparavant, seule Traversable était implémentée. |