Создаёт новый объект DatePeriod из строки в формате стандарта ISO8601

# DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

DatePeriod::createFromISO8601String — Создаёт новый объект DatePeriod из строки в формате стандарта ISO8601

### Описание

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

Метод создаёт новый объект DatePeriod из строки в формате стандарта ISO8601, как указывает описание параметра `specification`.

### Список параметров

`specification`

  Подмножество » спецификации повторяющихся интервалов стандарта ISO 8601.

  Пример принимаемой спецификации интервала стандарта ISO 8601 — строка `R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M`, которая указывает:

  - 5 повторений (`R5/`)
  - Начинать с `2008-03-01T13:00:00Z`.
  - Каждое повторение равно интервалу в 1 год 2 месяца 10 дней 2 часа и 30 минут (`/P1Y2M10DT2H30M`).

  Примеры спецификации интервалов стандарта ISO 8601, которые PHP не поддерживает:

  1. ноль раз (`R0/`)
  2. смещения времени, отличные от UTC (`Z`), например, `+02:00`.
`options`

  Битовое поле, которое можно указывать для управления отдельным поведением с начальными и конечными датами.

  Константа `DatePeriod::EXCLUDE_START_DATE` исключает дату начала из набора повторяющихся дат в пределах периода.

  Константа `DatePeriod::INCLUDE_END_DATE` включает дату окончания в наборе повторяющихся дат в пределах периода.

### Возвращаемые значения

Метод возвращает созданный объект DatePeriod.

С объектом DatePeriod, который создаётся методом, работают как с итератором для генерации объектов DateTimeImmutable.

### Ошибки

Метод выбрасывает исключение DateMalformedPeriodStringException, если значение параметра `specification` невозможно разобрать как допустимое значение периода в формате стандарта ISO 8601.

### Примеры

Пример #1 Пример создания из строки в формате ISO8601 объекта периода времени методом DatePeriod::createFromISO8601String

    <?php

    $iso = 'R4/2023-07-01T00:00:00Z/P7D';
    $period = DatePeriod::createFromISO8601String($iso);

    // При переборе объекта DatePeriod выведутся
    // повторяющиеся в пределах периода даты.
    foreach ($period as $date) {
        echo $date->format('Y-m-d'), "\n";
    }

Результат выполнения приведённого примера:

    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