(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setISODate — Sets the ISO date
$year, int $week, int $dayOfWeek = 1): DateTimeImmutableReturns a new DateTimeImmutable object with the date set according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.
yearYear of the date.
weekWeek of the date.
dayOfWeekOffset from the first day of the week.
Повертає новий об'єкт DateTimeImmutable зі зміненими даними.
Приклад #1 DateTimeImmutable::setISODate() example
Об'єктно-орієнтований стиль
<?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";
?>Процедурний стиль
<?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";
?>Подані вище приклади виведуть:
2008-01-07 2008-01-13
Приклад #2 Values 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";
?>Поданий вище приклад виведе:
2008-01-13 2008-01-14 2009-01-04
Приклад #3 Finding the month a week is in
<?php
$date = new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo $newDate->format('n');
?>Подані вище приклади виведуть:
3