DateTimeImmutable::add

Returns a new object, with added amount of days, months, years, hours, minutes and seconds

&reftitle.description; public `DateTimeImmutable` `DateTimeImmutable::add` `DateInterval` `interval`

Creates a new `DateTimeImmutable` object, and adds the specified `DateInterval` object to this, to represent the new value.

&reftitle.parameters;

`interval`

- A `DateInterval` object

&reftitle.returnvalues;

&date.datetimeimmutable.return.modifiedobject;

&reftitle.examples;

### `DateTimeImmutable::add` example

&style.oop;

    <?php
    $date = new DateTimeImmutable('2000-01-01');
    $newDate = $date->add(new DateInterval('P10D'));
    echo $newDate->format('Y-m-d') . "\n";
    ?>

### Further `DateTimeImmutable::add` examples

    <?php
    $date = new DateTimeImmutable('2000-01-01');
    $newDate = $date->add(new DateInterval('PT10H30S'));
    echo $newDate->format('Y-m-d H:i:s') . "\n";

    $date = new DateTimeImmutable('2000-01-01');
    $newDate = $date->add(new DateInterval('P7Y5M4DT4H3M2S'));
    echo $newDate->format('Y-m-d H:i:s') . "\n";
    ?>

&example.outputs;

    2000-01-01 10:00:30
    2007-06-05 04:03:02

### Beware when adding months

    <?php
    $date = new DateTimeImmutable('2000-12-31');
    $interval = new DateInterval('P1M');

    $newDate1 = $date->add($interval);
    echo $newDate1->format('Y-m-d') . "\n";

    $newDate2 = $newDate1->add($interval);
    echo $newDate2->format('Y-m-d') . "\n";
    ?>

&example.outputs;

    2001-01-31
    2001-03-03

&reftitle.seealso;

- `DateTimeImmutable::sub`
- `DateTimeImmutable::diff`
- `DateTimeImmutable::modify`