Boucler sur les jours entre deux dates PHP

Boucler sur les jours entre deux dates PHP

Il m'arrive souvent de devoir boucler sur les jours entre deux dates en PHP pour par exemple créer des tableaux, construire des graphiques ou des statistiques.

Voici une façon élégante de le faire en utilisant la classe \DatePeriod.

En choisissant un interval d'un jour, il est possible de boucler sur les jours avec un simple foreach.

$from = new \DateTime('-1 month');
$to = new \DateTime('now');

$inverval = \DateInterval::createFromDateString('1 day')
$days = new \DatePeriod($from, $interval, $to);

/** @var \DateTimeInterface $day */
foreach ($days as $day) {
    echo $datetime->format('Y-m-d');
}

On peut imaginer le même genre de code pour boucler sur les mois ou les semaines par exemple en modifiant l'interval.

Les commentaires