Statement on glibc/iconv Vulnerability

DatePeriod::createFromISO8601String

(PHP 8 >= 8.3.0)

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

Описание

public static 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 Пример использования метода 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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top