(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_DATEExclut la date de début, utilisée par DatePeriod::__construct().
DatePeriod::INCLUDE_END_DATEInclut 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_DATEet
        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. |