DatePeriod::__construct
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
DatePeriod::__construct
Референца за `dateperiod.construct.php` со подобрена типографија и навигација.
DatePeriod::__construct
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DatePeriod::__construct — Креира нов DatePeriod објект
= NULL
DateTimeInterface
$start,DateInterval
$interval,int
$recurrences,int
$options = 0)
DateTimeInterface
$start,DateInterval
$interval,DateTimeInterface
$end,int
$options = 0)
Следнава варијанта на конструкторот е депрецирана:
This variant of the constructor is deprecated as of PHP 8.4.0, use (PHP 5 >= 5.3.0, PHP 7, PHP 8) instead.
Креира нов DatePeriod објект.
DatePeriod објекти може да се користат како итератор за генерирање на број на DateTimeImmutable or
DateTime објект од start
датум, а interval, и end
датум или број на recurrences.
Класата на вратените објекти е еквивалентна на
DateTimeImmutable or DateTime
предок класа на start object.
Параметри
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го вклучувате датумот на крај во множеството на повторувачки датуми во периодот.
Errors/Exceptions
Фрла DateMalformedPeriodStringException кога isostr не може да се анализира како валиден период ISO 8601. Пред PHP 8.3, ова беше
Исклучок.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
The signature using isostr has been deprecated, use (PHP 5 >= 5.3.0, PHP 7, PHP 8) instead.
|
| 8.3.0 | список на имиња на класи, DateMalformedPeriodStringException наместо Исклучок. |
| 8.2.0 |
На DatePeriod::INCLUDE_END_DATE константата е додадена.
|
| 7.2.19, 7.3.6, 7.4.0 |
recurrences мора да биде поголемо од 0 now.
|
Примери
Пример #1 Пример за DatePeriod
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$recurrences = 4;
$iso = 'R4/2012-07-01T00:00:00Z/P7D';
// All of these periods are equivalent.
$period = new DatePeriod($start, $interval, $recurrences);
$period = new DatePeriod($start, $interval, $end);
$period = new DatePeriod($iso);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
Deprecated: Calling DatePeriod::__construct(string $isostr, int $options = 0) is deprecated, use DatePeriod::createFromISO8601String() instead in script on line 11 2012-07-01 2012-07-08 2012-07-15 2012-07-22 2012-07-29
Пример #2 Пример за DatePeriod со DatePeriod::EXCLUDE_START_DATE
<?php
$start = new DateTime('2012-07-01');
$interval = new DateInterval('P7D');
$end = new DateTime('2012-07-31');
$period = new DatePeriod($start, $interval, $end,
DatePeriod::EXCLUDE_START_DATE);
// By iterating over the DatePeriod object, all of the
// recurring dates within that period are printed.
// Note that, in this case, 2012-07-01 is not printed.
foreach ($period as $date) {
echo $date->format('Y-m-d')."\n";
}Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
2012-07-08 2012-07-15 2012-07-22 2012-07-29
Пример #3 Пример за DatePeriod што ги покажува сите последни четвртоци во годината
<?php
$begin = new DateTime('2021-12-31');
$end = new DateTime('2022-12-31 23:59:59');
$interval = DateInterval::createFromDateString('last thursday of next month');
$period = new DatePeriod($begin, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
foreach ($period as $dt) {
echo $dt->format('l Y-m-d'), "\n";
}Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
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 „Период на повторувачко време“ не се поддржани, т.е. ниту поминување
"R/..." as isostr ниту поминување
null as end би работело.