(PHP 8 >= 8.3.0)
DatePeriod::createFromISO8601String — Erstellt ein neues DatePeriod-Objekt aus einer ISO8601-Zeichenkette
Erstellt ein neues DatePeriod-Objekt aus der mit
specification
angegebenen ISO8601-Zeichenkette.
specification
Eine Teilmenge der » ISO-8601-Spezifikation für sich wiederholende Intervalle.
Ein Beispiel für eine zulässige ISO 8601-Intervallangabe ist R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M und bedeutet:
R5/
)
2008-03-01T13:00:00Z
.
/P1Y2M10DT2H30M
).
Beispiele für Features der ISO-8601-Spezifikation für Intervalle, die von PHP nicht unterstützt werden, sind:
R0/
)
Z
), wie
+02:00
.
options
Ein Bitfeld, mit dem ein bestimmtes Verhalten bezüglich der Start- und Enddaten gesteuert werden kann.
Mit DatePeriod::EXCLUDE_START_DATE
wird das
Startdatum aus der Menge der wiederkehrenden Termine innerhalb des
Zeitraums ausgeschlossen.
Mit DatePeriod::INCLUDE_END_DATE
wird das Enddatum
in die Menge der wiederkehrenden Termine innerhalb des Zeitraums
aufgenommen.
Erstellt ein neues DatePeriod-Objekt.
DatePeriod-Objekte können als Iterator verwendet werden, um eine Reihe von DateTimeImmutable-Objekten zu erzeugen.
Wenn specification
nicht als gültiger
ISO-8601-Zeitraum analysiert werden kann, wird eine
DateMalformedPeriodStringException geworfen.
Beispiel #1 DatePeriod::createFromISO8601String-Beispiel
<?php
$iso = 'R4/2023-07-01T00:00:00Z/P7D';
$period = DatePeriod::createFromISO8601String($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:
2023-07-01 2023-07-08 2023-07-15 2023-07-22 2023-07-29