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, є:
- нульові входження (
R0/
) . - зсув часу, відмінне від 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.0 | recurrences має бути більше |
Приклади
Приклад #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
, не працюватимуть.