PHP Conference Japan 2024

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setISODate設定 ISO 日期

說明

public DateTimeImmutable::setISODate(int $year, int $week, int $dayOfWeek = 1): DateTimeImmutable

傳回一個新的 DateTimeImmutable 物件,其日期根據 ISO 8601 標準設定 - 使用星期和日期偏移量,而不是特定日期。

參數

year

日期的年份。

week

日期的星期。

dayOfWeek

從一周的第一天算起的偏移量。

返回值

返回一個新的 DateTimeImmutable 物件,其中包含修改後的日期資料。

範例

範例 #1 DateTimeImmutable::setISODate() 範例

物件導向風格

<?php
$date
= new DateTimeImmutable();

$date->setISODate(2008, 2);
echo
$date->format('Y-m-d') . "\n";

$date->setISODate(2008, 2, 7);
echo
$date->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 超出範圍的值會加到其父值

<?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 尋找星期所在的月份

<?php
$date
= new DateTimeImmutable();
$newDate = $date->setISODate(2008, 14);
echo
$newDate->format('n');
?>

以上範例會輸出

3

另請參閱

新增註釋

使用者貢獻的註釋

此頁面沒有使用者貢獻的註釋。
To Top