(PHP 5 >= 5.3.0, PHP 7)
DatePeriod::__construct — Yeni bir DatePeriod nesnesi oluşturur
$başlangıç
, DateInterval $aralık
, int $tekrarsayısı
[, int $seçenekler
] )$başlangıç
, DateInterval $aralık
, DateTimeInterface $bitiş
[, int $seçenekler
] )$isostr
[, int $seçenekler
] )Yeni bir DatePeriod nesnesi oluşturur.
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: | 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.
|
Ö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
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