DatePeriod::__construct
Erstellt ein neues DatePeriod Objekt
Beschreibung
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
] )
Parameter-Liste
-
start
-
Das Startdatum der Periode.
-
interval
-
Das Intervall zwischen den Wiederholungen in der Periode.
-
recurrences
-
Die Anzahl der Wiederholungen.
-
end
-
Das Enddatum der Periode.
-
isostr
-
Eine 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.
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 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
Anmerkungen
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.