DatePeriod::__constructСоздаёт новый объект DatePeriod
&reftitle.description;
publicDatePeriod::__constructDateTimeInterfacestartDateIntervalintervalintrecurrencesintoptions0publicDatePeriod::__constructDateTimeInterfacestartDateIntervalintervalDateTimeInterfaceendintoptions0
Этот вариант конструктора устарел:
publicDatePeriod::__constructstringisostrintoptions0
Вместо этого следует использовать статический
фабричный метод DatePeriod::createFromISO8601String.
Создаёт новый объект DatePeriod.
Объекты DatePeriod можно использовать в качестве итератора
для генерации ряда объектов DateTimeImmutable или DateTime
из даты start, interval и end
или числа recurrences.
Класс возвращаемых объектов эквивалентен классу-родителю DateTimeImmutable
или DateTime объекта start.
&reftitle.parameters;
start
Начальная дата. По умолчанию включается в набор результатов.
interval
Интервал.
recurrences
Количество повторений. Число возвращаемых результатов на единицу больше этого,
так как дата начала включается в набор результатов по умолчанию.
Должно быть больше, чем 0.
end
Конечная дата. По умолчанию исключается из набора результатов.
isostr
Подмножество, содержащее интервал согласно спецификации ISO 8601.
Примерами некоторых особенностей спецификации интервалов ISO 8601,
которые PHP не поддерживает, являются:
нулевые вхождения (R0/)
смещение времени, отличное от UTC (Z), например, +02:00.
options
Битовое поле, которое можно использовать для управления определённым поведением с начальной и конечной датами.
Исключить начальную дату внутри периода из набора повторяющихся дат можно
с помощью константы DatePeriod::EXCLUDE_START_DATE.
Включить конечную дату внутри периода в набор повторяющихся дат можно
с помощью константы DatePeriod::INCLUDE_END_DATE.
&reftitle.errors;
Когда значение параметра isostr
не может быть разобрано анализатором как допустимый стандартом ISO 8601 формат,
выбрасывается исключение DateMalformedPeriodStringException.
До PHP 8.3 выбрасывалось исключение Exception.
&reftitle.changelog;
&Version;&Description;8.3.0
Теперь вместо исключения Exception
выбрасывается исключение DateMalformedPeriodStringException.
8.2.0
Добавлена константа DatePeriod::INCLUDE_END_DATE.
7.2.19, 7.3.6, 7.4.0recurrences должен быть больше 0.
&reftitle.examples;
Пример использования DatePeriod
format('Y-m-d')."\n";
}
]]>
&example.outputs;
Пример использования DatePeriod с DatePeriod::EXCLUDE_START_DATE
format('Y-m-d')."\n";
}
]]>
&example.outputs;
Пример использования DatePeriod, показывающий все последние четверги в году
format('l Y-m-d'), "\n";
}
]]>
&example.outputs;
&reftitle.notes;
Несвязное количество повторений, определённые в секции 4.5 ISO 8601
"Recurring time interval", не поддерживается, то есть
ни передача "R/..." в isostr, ни
&null; в end, не будут работать.