PHP
日期和时间 | Date and Time

DateTime::setISODate

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime :: setISODate - date_isodate_set - 设置ISO日期

描述

面向对象的风格

public DateTime DateTime::setISODate ( int $year , int $week [, int $day = 1 ] )

程序风格

DateTime date_isodate_set ( DateTime $object , int $year , int $week [, int $day = 1 ] )

根据ISO 8601标准设置日期 - 使用星期和星期偏移量而不是特定日期。

参数

object

仅限过程样式:由date_create()返回的DateTime对象。该函数修改这个对象。

year

日期的一年。

week

日期的一周。

day

从一周的第一天开始抵消。

返回值

返回方法链接或FALSE失败时的DateTime对象。

更新日志

描述
5.3.0将成功的返回值从NULL更改为DateTime。

例子

示例 #1 DateTime::setISODate() example

面向对象的风格

<?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

示例#2超出范围的值将添加到其父值中

<?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

示例#3查找每周的月份

<?php $date = new DateTime( $date->setISODate(2008, 14 echo $date->format('n' ?>

上面的例子会输出: