DateTimeImmutable::setISODate
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
Sets the ISO date
Description
Returns a new DateTimeImmutable object with the date set according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.
Parameters
yearYear of the date.
weekWeek of the date.
dayOfWeekOffset from the first day of the week.
Return Values
Modifiedobject
Examples
DateTimeImmutable::setISODate() example
Oop
<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 2);
echo $newDate->format('Y-m-d') . "\n";
$newDate = $date->setISODate(2008, 2, 7);
echo $newDate->format('Y-m-d') . "\n";The above example will output:
2008-01-07
2008-01-13Procedural
<?php
$date = date_create();
date_isodate_set($date, 2008, 2);
echo date_format($date, 'Y-m-d') . "\n";
date_isodate_set($date, 2008, 2, 7);
echo date_format($date, 'Y-m-d') . "\n";The above example will output:
2008-01-07
2008-01-13Values exceeding ranges are added to their parent values
<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 2, 7);
echo $newDate->format('Y-m-d') . "\n";
$newDate = $date->setISODate(2008, 2, 8);
echo $newDate->format('Y-m-d') . "\n";
$newDate = $date->setISODate(2008, 53, 7);
echo $newDate->format('Y-m-d') . "\n";The above example will output:
2008-01-13
2008-01-14
2009-01-04Finding the month a week is in
<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo $newDate->format('n');The above example will output:
3