DatePeriod::__construct

(PHP 5 >= 5.3.0, PHP 7)

DatePeriod::__constructYeni bir DatePeriod nesnesi oluşturur

Açıklama

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

Yeni bir DatePeriod nesnesi oluşturur.

Değiştirgeler

başlangıç

Tarih başlangıcı.

aralık

Aralık.

tekrarlama

Tekrar sayısı.

bitiş

Tarih bitişi.

isostr

ISO aralığını içeren dizge.

seçenekler

DatePeriod::EXCLUDE_START_DATE sabiti olabilir.

add a note add a note

User Contributed Notes 2 notes

up
24
simon dot kohlmeyer at mayflower dot de
7 years ago
I found two things useful to know that aren't covered here.

1. endDate is excluded:

<?php
$i
= new DateInterval('P1D');
$d1 = new Datetime();
$d2 = clone $d1; $d2->add($i);
foreach(new
DatePeriod($d1, $i, $d2) as $d) {
    echo
$d->format('Y-m-d H:i:s') . "\n";
}
?>

Will output:
2010-11-03 12:39:53

(Another one because I got it wrong at first)
2. For the first form, recurrences really means REcurrences, not occurences.

<?php
$i
= new DateInterval('P1D');
$d = new Datetime();
foreach(new
DatePeriod($d, $i, 1) as $d) {
    echo
$d->format('Y-m-d H:i:s') . "\n";
}
?>

Will output:
2010-11-03 12:41:05
2010-11-04 12:41:05
up
7
lars at hp-designs dot com
5 years ago
When you add the time 23:59:59 to the end DateTime object something like the following then the end date will be included in the period:

<?php
$date_start
= new DateTime('2012-03-12');
$date_end = new DateTime('2012-03-22 23:59:59');

$interval = '+2 days';
$date_interval = DateInterval::createFromDateString($interval);

$period = new DatePeriod($date_start, $date_interval, $date_end, DatePeriod::EXCLUDE_START_DATE);

foreach(
$period as $dt) {
echo
$dt->format('d/m');
}
?>

OUTPUT:
14/03
16/03
18/03
20/03
22/03
To Top