PHP 8.6.0 Beta 1 is available for testing

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月01日T13: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日

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы

AltStyle によって変換されたページ (->オリジナル) /