DateTime::setISODate()
date_isodate_set
(PHP 5 >= 5.2.0, PHP 7)
设置 ISO 日期
说明
面向对象风格public DateTime::setISODate(int $year,int $week[,int $day= 1]): DateTime
过程化风格
date_isodate_set(DateTime$object,int $year,int $week[,int $day= 1]): DateTime
以 ISO 8601 规范的格式设置日期,使用周和日的偏移量作为参数,而不是使用月和日。
参数
- $object
仅过程化风格:由date_create()返回的DateTime类型的对象。此函数会修改这个对象。
- $year
年份。
- $week
周。
- $day
从周的第一天计算,日在一周内的偏移量。
返回值
返回被修改的 DateTime 对象,或者在失败时返回FALSE
.
更新日志
版本 | 说明 |
---|---|
5.3.0 | 将返回值从NULL 改为DateTime类型。 |
范例
Example #1DateTime::setISODate()例程
面向对象风格
<?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"; ?>
过程化风格
<?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
超出有效范围的部分,会加到上一级
<?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"; ?>
以上例程会输出:
2008-01-13 2008-01-14 2009-01-04
找出来某个周所属的月份
<?php $date = new DateTime(); $date->setISODate(2008, 14); echo $date->format('n'); ?>
以上例程会输出:
3
参见
- DateTime::setDate() 设置 DateTime 对象的日期
- DateTime::setTime() 设置 DateTime 对象的时间