DatePeriod::__construct
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DatePeriod::__construct — Erstellt ein neues DatePeriod-Objekt
Beschreibung
DateTimeInterface
$start
,DateInterval
$interval
,int
$recurrences
,int
$options
= 0)
DateTimeInterface
$start
,DateInterval
$interval
,DateTimeInterface
$end
,int
$options
= 0)
$isostr
, int $options
= 0)Erstellt ein neues DatePeriod-Objekt.
Parameter-Liste
-
start
-
Das Startdatum des Zeitraums.
-
interval
-
Das Intervall zwischen den Wiederholungen innerhalb des Zeitraums.
-
recurrences
-
Die Anzahl der Wiederholungen.
-
end
-
Das Enddatum des Zeitraums.
-
isostr
-
Eine » ISO-8601-Spezifikation für sich wiederholende Intervalle. Null Vorkommen (
R0/
) werden nicht unterstützt. -
options
-
Kann auf den Wert
DatePeriod::EXCLUDE_START_DATE
gesetzt werden, um das Startdatum aus den wiederkehrenden Terminen innnerhalb des Zeitraums auszuschließen.
Changelog
Version | Beschreibung |
---|---|
7.2.19, 7.3.6, 7.4.0 |
recurrences muss jetzt größer als
0 sein.
|
Beispiele
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 Zeiträume 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 des Zeitraums 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 des Zeitraums 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
Anmerkungen
Die unbegrenzte Anzahl von Wiederholungen, wie von ISO 8601, Abschnitt 4.5
"Recurring time interval" spezifiziert, wird nicht unterstützt, d. h. weder
die Übergabe von "R/..."
an
isostr
noch die Übergabe von null
an
end
funktioniert.