La classe DatePeriod

La classe DatePeriod crée une séquence de dates entre un point de départ et un point d'arrivée avec un intervalle défini. Elle accepte comme paramètres : la date de départ sous forme d'objet DateTime, l'intervalle sous forme d'objet DateInterval, le nombre de répétitions ou la date de fin. Elle permet de parcourir toutes les dates dans la plage spécifiée.

Syntaxe

phpnew DatePeriod(DateTime $start, DateInterval $interval, int $recurrences);
phpnew DatePeriod(DateTime $start, DateInterval $interval, DateTime $end);

Exemple

Créons une période de 5 dates avec un intervalle de 1 jour :

php<?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>';
  }
?>

Résultat de l'exécution du code :

php'2025-01-01'
'2025-01-02'
'2025-01-03'
'2025-01-04'
'2025-01-05'

Exemple

Créons une période entre deux dates avec un intervalle de 1 semaine :

php<?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>';
  }
?>

Résultat de l'exécution du code :

php'2025-01-01'
'2025-01-08'
'2025-01-15'
'2025-01-22'
'2025-01-29'

Voir aussi

  • classe DateTime,
    pour travailler avec la date et l'heure
  • classe DateInterval,
    pour travailler avec les intervalles de dates