DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DatePeriod::__construct — Створює новий об'єкт DatePeriod

Опис

public DatePeriod::__construct
DateTimeInterface $start,
DateInterval $interval,
int$recurrences,
int$options
) .

public DatePeriod::__construct
DateTimeInterface $start,
DateInterval $interval,
DateTimeInterface $end,
int$options
) .

Увага

public DatePeriod::__construct(string$isostr, int$options

Цей варіант конструктора застарів, використовуйте замість нього метод DatePeriod::createFromISO8601String()

Створює новий об'єкт DatePeriod.

Об'єкти DatePeriod можна використовувати як ітератор для генерації ряду об'єктів DateTimeImmutable або DateTime з дати start intervalиend або числа recurrences

Клас об'єктів, що повертаються, еквівалентний класу-батькові DateTimeImmutable або DateTime об'єкта start

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

start

Початкова дата. За замовчуванням включається до набору результатів.

interval

Інтервал.

recurrences

Кількість повторень. Число результатів, що повертаються на одиницю більше цього, так як дата початку включається в набір результатів за замовчуванням. Має бути більше, ніж

end

Кінцева дата. За замовчуванням виключається із набору результатів.

isostr

Подмножество, содержащее интервал согласно» спеціфікації ISO 8601

Прикладами деяких особливостей специфікації інтервалів ISO 8601, які не підтримує PHP, є:

  1. нульові входження (R0/) .
  2. зсув часу, відмінне від UTC (Z), наприклад,+02:00

options

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

Виключити початкову дату всередині періоду з набору дат, що повторюються, можна за допомогою константи DatePeriod::EXCLUDE_START_DATE

Включити кінцеву дату всередині періоду в набір дат, що повторюються, можна за допомогою константи DatePeriod::INCLUDE_END_DATE

Помилки

Когда значение параметраisostr не може бути розібрано аналізатором як допустимий стандартом ISO 8601 формат, викидається виняток DateMalformedPeriodStringException. До PHP 8.3 викидався виняток Exception

список змін

ВерсияОпис
8.3.0Тепер замість винятку Exception викидається виняток DateMalformedPeriodStringException
8.2.0Добавлена константа**DatePeriod::INCLUDE_END_DATE**
7.2.19, 7.3.6, 7.4.0recurrences має бути більше

Приклади

Приклад #1 Приклад використання DatePeriod

Loading...

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

2012-07-01
2012-07-08
2012-07-15
2012-07-22
2012-07-29

Приклад #2 Приклад использования DatePeriod сDatePeriod::EXCLUDE_START_DATE****

Loading...

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

2012-07-08
2012-07-15
2012-07-22
2012-07-29

Приклад #3 Приклад використання DatePeriod, що показує всі останні четверги на рік

Loading...

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

Thursday 2022-01-27
Thursday 2022-02-24
Thursday 2022-03-31
Thursday 2022-04-28
Thursday 2022-05-26
Thursday 2022-06-30
Thursday 2022-07-28
Thursday 2022-08-25
Thursday 2022-09-29
Thursday 2022-10-27
Thursday 2022-11-24
Thursday 2022-12-29

Примітки

Незв'язкова кількість повторень, визначених у секції 4.5 ISO 8601 "Recurring time interval", не підтримується, тобто ні передача "R/..."вisostr, ни**null**вend, не працюватимуть.