DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7)

DatePeriod::__constructYeni bir DatePeriod nesnesi oluşturur

Açıklama

public DatePeriod::__construct ( DateTimeInterface $başlangıç , DateInterval $aralık , int $tekrarsayısı [, int $seçenekler ] )
public DatePeriod::__construct ( DateTimeInterface $başlangıç , DateInterval $aralık , DateTimeInterface $bitiş [, int $seçenekler ] )
public DatePeriod::__construct ( string $isostr [, int $seçenekler ] )

Yeni bir DatePeriod nesnesi oluşturur.

Değiştirgeler

başlangıç

Dönemin başlangıç tarihi.

aralık

Dönemsel yinelemeler arasındaki boşluk.

tekrarsayısı

Yineleme sayısı.

bitiş

Dönemin bitiş tarihi.

isostr

Bir ISO 8601 tekrarlanan aralık belirtimi.

seçenekler

Başlangıç tarihini, dönem içindeki yinelenen tarihler kümesinden hariç tutmak için DatePeriod::EXCLUDE_START_DATE sabiti kullanılabilir.

Sürüm Bilgisi

Sürüm: Açıklama
5.5.8 bitiş için tür DateTimeInterface oldu. Evvelce, DateTime idi.
5.5.0 başlangıç için tür DateTimeInterface oldu. Evvelce, DateTime idi.

Örnekler

Örnek 1 DatePeriod örneği

<?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';

// Hepsi eşdeğer
$period = new DatePeriod($start$interval$recurrences);
$period = new DatePeriod($start$interval$end);
$period = new DatePeriod($iso);

// DatePeriod nesnesi üzerinde yineleme yaparak 
// yinelenen dönemlerin tarihleri basılabilir.
foreach ($period as $date) {
    echo 
$date->format('Y-m-d')."\n";
}
?>

Yukarıdaki örneğin çıktısı:

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

Örnek 2 DatePeriod::EXCLUDE_START_DATE ile DatePeriod örneği

<?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);

// DatePeriod nesnesi üzerinde yineleme yaparak 
// yinelenen dönemlerin tarihleri basılabilir.
// Bu defa, 2012-07-01 basılmayacak.
foreach ($period as $date) {
    echo 
$date->format('Y-m-d')."\n";
}
?>

Yukarıdaki örneğin çıktısı:

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

Notlar

Unbound numbers of repetitions as specified by ISO 8601 belirtiminin 4.5 "Recurring time interval" bölümünde belirtilen sınırsız sayıda tekrarlama desteklenmemektedir. Yani, isostr için "R/..." çalışmayacağı gibi bitiş için NULL da çalışmayacaktır