(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setDate — Sets the date
Returns a new DateTimeImmutable object with the current date of the DateTimeImmutable object set to the given date.
object
Procedural style only: A DateTime object returned by date_create(). The function modifies this object.
year
Year of the date.
month
Month of the date.
day
Day of the date.
Returns a new DateTimeImmutable object with the modified data or false
on failure.
Example #1 DateTimeImmutable::setDate() example
Object-oriented style
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2001, 2, 3);
echo $newDate->format('Y-m-d');
?>
The above examples will output:
2001-02-03
Example #2 Values exceeding ranges are added to their parent values
<?php
$date = new DateTimeImmutable();
$newDate = $date->setDate(2001, 2, 28);
echo $newDate->format('Y-m-d') . "\n";
$newDate = $date->setDate(2001, 2, 29);
echo $newDate->format('Y-m-d') . "\n";
$newDate = $date->setDate(2001, 14, 3);
echo $newDate->format('Y-m-d') . "\n";
?>
The above example will output:
2001-02-28 2001-03-01 2002-02-03