(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setDate — Sets the date
#[\NoDiscard] public DateTimeImmutable::setDate(int $year, int $month, int $day): DateTimeImmutable
Returns a new DateTimeImmutable object with the current date of the DateTimeImmutable object set to the given date.
objectProcedural style only: A DateTime object returned by date_create(). The function modifies this object.
yearYear of the date.
monthMonth of the date.
dayDay of the date.
Returns a new DateTimeImmutable object with the modified data.
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 example 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
© 1997–2025 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/datetimeimmutable.setdate.php