(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTime::setISODate -- date_isodate_set — 設(shè)置 ISO 日期
面向?qū)ο箫L(fēng)格
過程化風(fēng)格
以 ISO 8601 規(guī)范的格式設(shè)置日期, 使用周和日的偏移量作為參數(shù),而不是使用月和日。
object
僅過程化風(fēng)格:由 date_create() 返回的 DateTime 類型的對(duì)象。此函數(shù)會(huì)修改這個(gè)對(duì)象。
year
年份。
week
周。
dayOfWeek
從周的第一天計(jì)算,日在一周內(nèi)的偏移量。
返回被修改的 DateTime 對(duì)象, 或者在失敗時(shí)返回 false
.
示例 #1 DateTime::setISODate() 例程
面向?qū)ο箫L(fēng)格
<?php
$date = new DateTime();
$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";
$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>
過程化風(fēng)格
<?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";
?>
以上例程會(huì)輸出:
2008-01-07 2008-01-13
示例 #2 超出有效范圍的部分,會(huì)加到上一級(jí)
<?php
$date = new DateTime();
$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
$date->setISODate(2008, 2, 8);
echo $date->format('Y-m-d') . "\n";
$date->setISODate(2008, 53, 7);
echo $date->format('Y-m-d') . "\n";
?>
以上例程會(huì)輸出:
2008-01-13 2008-01-14 2009-01-04
示例 #3 找出來某個(gè)周所屬的月份
<?php
$date = new DateTime();
$date->setISODate(2008, 14);
echo $date->format('n');
?>
以上例程會(huì)輸出:
3