📅  最后修改于: 2023-12-03 15:03:36.561000             🧑  作者: Mango
DateTimeImmutable的setISODate()函数用于设置一个日期的ISO年份、ISO周数和星期几。ISO日期格式是使用年份和周数表示日期的一种表示方式,其中周数从1开始,星期几用数字1表示星期一,以此类推到数字7表示星期日。
public DateTimeImmutable::setISODate(int $year, int $week, int $day = 1)
$year
:指定的ISO年份,必须是一个4位数字。
$week
:指定的ISO周数,必须是一个整数。
$day
:(可选的)指定星期几,将在该周的第几天进行设置。1表示星期一,2表示星期二,以此类推到7表示星期日。默认值为1。
该函数返回一个新的DateTimeImmutable对象,它的日期和时间与当前对象相同,但指定的ISO年份、ISO周数和星期几取代了当前对象的值。
$now = new DateTimeImmutable();
$weekStart = $now->setISODate(2021, 10);
echo $weekStart->format('Y-m-d'); // 输出:2021-03-08
$wednesday = $now->setISODate(2021, 10, 3);
echo $wednesday->format('Y-m-d'); // 输出:2021-03-10
在第一个示例中,我们设置了日期为2021年的第10周的周一,从而获得了这一周的开始日期。
在第二个示例中,我们设置了日期为2021年的第10周的星期三,从而获得了这一天的日期。
setISODate()函数是DateTimeImmutable类的有用方法,可用于设置一个日期的ISO年份、ISO周数和星期几,从而获得所需的日期。在使用此函数时,需要注意传递正确的参数,以便获得所需的结果。