(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