PHP.mk документација

DatePeriod::__construct

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

dateperiod.construct.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека dateperiod.construct.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
DatePeriod::__construct

Референца за `dateperiod.construct.php` со подобрена типографија и навигација.

dateperiod.construct.php

DatePeriod::__construct

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

DatePeriod::__constructКреира нов DatePeriod објект

= NULL

public DatePeriod::__construct(
         DateTimeInterface $start,
         DateInterval $interval,
         int $recurrences,
         int $options = 0
)
public DatePeriod::__construct(
         DateTimeInterface $start,
         DateInterval $interval,
         DateTimeInterface $end,
         int $options = 0
)
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјава

Следнава варијанта на конструкторот е депрецирана:

public DatePeriod::__construct(string $isostr, int $options = 0)

Наместо тоа DatePeriod::createFromISO8601String() треба да се користи статичкиот метод factory.

Креира нов 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 не ги поддржува се:

  1. нула појави (R0/)
  2. временски поместувања различни од UTC (Z), како што се +02:00.
options

Поле со битови што може да се користи за контрола на одредено однесување со датумите на почеток и крај.

Со DatePeriod::EXCLUDE_START_DATE го исклучувате датумот на почеток од множеството на повторувачки датуми во периодот.

Со DatePeriod::INCLUDE_END_DATE го вклучувате датумот на крај во множеството на повторувачки датуми во периодот.

Errors/Exceptions

Фрла DateMalformedPeriodStringException кога isostr не може да се анализира како валиден период ISO 8601. Пред PHP 8.3, ова беше Исклучок.

Дневник на промени

Верзија = NULL
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 би работело.

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.