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