DateTimeImmutable::modify

Creates a new object with modified timestamp

&reftitle.description; public ``DateTimeImmutable``false```DateTimeImmutable::modify` `string` `modifier`

Creates a new `DateTimeImmutable` object with modified timestamp. The original object is not modified.

&reftitle.parameters;

`modifier`

- &date.formats.parameter;

&reftitle.returnvalues;

Returns a new modified DateTimeImmutable object&return.falseforfailure;.

&reftitle.errors;

If an invalid Date/Time string is passed, DateMalformedStringException is thrown. Previous to PHP 8.3, this was a warning.

&reftitle.changelog;

&Version; | &Description;
8.3.0 | Now throws DateMalformedStringException if an invalid string is passed, instead of a warning.

&reftitle.examples;

### `DateTimeImmutable::modify` example

&style.oop;

    <?php
    $date = new DateTimeImmutable('2006-12-12');
    $newDate = $date->modify('+1 day');
    echo $newDate->format('Y-m-d');
    ?>

&examples.outputs;

    2006-12-13

### Beware when adding or subtracting months

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

    $newDate1 = $date->modify('+1 month');
    echo $newDate1->format('Y-m-d') . "\n";

    $newDate2 = $newDate1->modify('+1 month');
    echo $newDate2->format('Y-m-d') . "\n";
    ?>

&example.outputs;

    2001-01-31
    2001-03-03

&reftitle.seealso;

- `DateTimeImmutable::add`
- `DateTimeImmutable::sub`
- `DateTimeImmutable::setDate`
- `DateTimeImmutable::setISODate`
- `DateTimeImmutable::setTime`
- `DateTimeImmutable::setTimestamp`