(PHP 5 >= 5.3.0, PHP 7)
DatePeriod::__construct — Erstellt ein neues DatePeriod Objekt
$start
, DateInterval $interval
, int $recurrences
[, int $options
] )$start
, DateInterval $interval
, DateTimeInterface $end
[, int $options
] )$isostr
[, int $options
] )Erstellt ein neues DatePeriod Objekt.
startDas Startdatum der Periode.
intervalDas Intervall zwischen den Wiederholungen in der Periode.
recurrencesDie Anzahl der Wiederholungen.
endDas Enddatum der Periode.
isostrEine ISO 8601 Spezifikation für sich wiederholende Intervalle.
options
Kann auf den Wert DatePeriod::EXCLUDE_START_DATE
gesetzt werden, um das Startdatum aus den wiederkehrenden Terminen
innnerhalb der Periode auszuschließen.
| Version | Beschreibung |
|---|---|
| 5.5.8 |
end Typ zu
DateTimeInterface geändert.
Zuvor war es DateTime.
|
| 5.5.0 |
start Typ zu
DateTimeInterface geändert.
Zuvor war es DateTime.
|
Beispiel #1 DatePeriod Beispiel
<?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';
// Alle diese Perioden sind gleichwertig.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// Durch Iterieren über das DatePeriod Objekt, werden alle sich
// wiederholenden Termine innerhalb der Periode ausgegeben.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
2012-07-01 2012-07-08 2012-07-15 2012-07-22 2012-07-29
Beispiel #2 DatePeriod Beispiel mit 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);
// Durch Iterieren über das DatePeriod Objekt, werden alle sich
// wiederholenden Termine innerhalb der Periode ausgegeben.
// Es ist zu beachten, dass in diesem Fall 2012-07-01 nicht ausgegeben wird.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
2012-07-08 2012-07-15 2012-07-22 2012-07-29
Offene Anzahl von Wiederholungen, wie von ISO 8601, Abschnitt 4.5 "Recurring
time interval" spezifiziert, werden nicht unterstützt, d.h. weder die
Übergabe von "R/..." an isostr,
noch die Übergabe von NULL an end funktioniert.