# DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601String — Erstellt ein neues DatePeriod-Objekt aus einer ISO8601-Zeichenkette

### Beschreibung

public static DatePeriod::createFromISO8601String(string `$specification`, int `$options` = 0): static

Erstellt ein neues DatePeriod-Objekt aus der mit `specification` angegebenen ISO8601-Zeichenkette.

### Parameter-Liste

`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:

  - 5 Wiederholungen (`R5/`)
  - Beginnend ab `2008-03-01T13:00:00Z`.
  - Jede Wiederholung ist ein Intervall von 1 Jahr, 2 Monaten, 10 Tagen, 2 Stunden und 30 Minuten (`/P1Y2M10DT2H30M`).

  Beispiele für Features der ISO-8601-Spezifikation für Intervalle, die von PHP nicht unterstützt werden, sind:

  1. null Vorkommen (`R0/`)
  2. andere Zeitabweichungen als UTC (`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.

### Rückgabewerte

Erstellt ein neues DatePeriod-Objekt.

DatePeriod-Objekte können als Iterator verwendet werden, um eine Reihe von DateTimeImmutable-Objekten zu erzeugen.

### Fehler/Exceptions

Wenn `specification` nicht als gültiger ISO-8601-Zeitraum analysiert werden kann, wird eine DateMalformedPeriodStringException geworfen.

### Beispiele

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open