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 = 0
)
                

public DatePeriod::__construct(
    DateTimeInterface $start,
    DateInterval $interval,
    DateTimeInterface $end,
    int $options = 0
)
                

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

새 DatePeriod 개체를 만듭니다.


매개변수

start
기간의 시작 날짜입니다.
interval
기간 내 반복 간격입니다.
recurrences
반복 횟수입니다. 0보다 커야 합니다.
end
기간의 종료 날짜입니다.
isostr
» ISO 8601 반복 간격 사양. 제로 발생(R0/)은 지원되지 않습니다.
options
DatePeriod::EXCLUDE_START_DATE로 설정하여 기간 내의 반복 날짜 집합에서 시작 날짜를 제외할 수 있습니다.

변경 로그

버전 설명
7.2.19, 7.3.6, 7.4.0 이제 recurrences0보다 커야 합니다.

Examples

예제 #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";
}
?>
                  
                

위의 예는 다음을 출력합니다.

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

예제 #2 DatePeriod::EXCLUDE_START_DATE가 있는 DatePeriod 예제

                  
<?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";
}
?>
                  
                

위의 예는 다음을 출력합니다.

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

메모

ISO 8601 섹션 4.5 "반복 시간 간격"에 지정된 무제한 반복 횟수는 지원되지 않습니다. 즉, "R/..."isostr로 전달하거나 nullend로 전달하면 작동하지 않습니다.