DatePeriod
PHP Manual

DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7)

DatePeriod::__constructCrée un nouvel objet DatePeriod

Description

public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , int $recurrences [, int $options ] )
public DatePeriod::__construct ( DateTimeInterface $start , DateInterval $interval , DateTimeInterface $end [, int $options ] )
public DatePeriod::__construct ( string $isostr [, int $options ] )

Crée un nouvel objet DatePeriod.

Liste de paramètres

start

La date de début de la période.

interval

L'intervalle entre les récurrences de la période.

recurrences

Le nombre de récurrences.

end

La date de fin de la période.

isostr

Une spécification ISO 8601 de la répétition de l'intervalle.

options

Peut être configuré à DatePeriod::EXCLUDE_START_DATE pour exclure la date de début du jeu de dates de récursion dans la période.

Historique

Version Description
5.5.8 Le type du paramètre end change pour DateTimeInterface. Précédemment, DateTime.
5.5.0 Le type du paramètre start change pour DateTimeInterface. Précédemment, DateTime.

Exemples

Exemple #1 Exemple avec DatePeriod

<?php
$start 
= new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences 4;
$iso 'R4/2012-07-01T00:00:00Z/P7D';

// Toutes ces périodes sont équivalentes.
$period = new DatePeriod($start$interval$recurrences);
$period = new DatePeriod($start$interval$end);
$period = new DatePeriod($iso);

// En parcourant l'objet DatePeriod, toutes les
// dates de la récursion pour la période seront affichées.
foreach ($period as $date) {
    echo 
$date->format('Y-m-d')."\n";
}
?>

L'exemple ci-dessus va afficher :

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Exemple #2 Exemple avec DatePeriod et DatePeriod::EXCLUDE_START_DATE

<?php
$start 
= new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');

$period = new DatePeriod($start$interval$end,
                         
DatePeriod::EXCLUDE_START_DATE);

// En parcourant l'objet DatePeriod,
// toutes les dates de récursion pour la période sont affichées.
// Notez que, dans ce cas, 2012-07-01 ne sera pas affiché.
foreach ($period as $date) {
    echo 
$date->format('Y-m-d')."\n";
}
?>

L'exemple ci-dessus va afficher :

2012-07-08
2012-07-15
2012-07-22
2012-07-29

Notes

Les nombres de répétitions non liés spécifiés dans la section 4.5 "Intervalle de temps récurrent" de la norme ISO 8601 ne sont pas supportés, c'est-à-dire ni "R/..." comme isostr ni NULL comme end ne fonctionnerait.


DatePeriod
PHP Manual