DatePeriod::__construct

Creates a new DatePeriod object

&reftitle.description; public `DatePeriod::__construct` `DateTime` `start` `DateInterval` `interval` `int` `recurrences` `int` `options` public `DatePeriod::__construct` `DateTime` `start` `DateInterval` `interval` `DateTime` `end` `int` `options` public `DatePeriod::__construct` `string` `isostr` `int` `options`

Creates a new DatePeriod object.

&reftitle.parameters;

`start`

- The start date of the period.

`interval`

- The interval between recurrences within the period.

`recurrences`

- The number of recurrences.

`end`

- The end date of the period.

`isostr`

- An ISO 8601 repeating interval specification.

`options`

- Can be set to `DatePeriod::EXCLUDE_START_DATE` to exclude the start date from the set of recurring dates within the period.

&reftitle.examples;

### DatePeriod example

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

&example.outputs;

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

### DatePeriod example with `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";
    }
    ?>

&example.outputs;

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