DateTime
PHP Manual

DateTime::setISODate

date_isodate_set

(PHP 5 >= 5.2.0, PHP 7)

DateTime::setISODate -- date_isodate_setSets the ISO date

说明

面向对象风格

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

过程化风格

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

Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.

参数

object

仅过程化风格:由 date_create() 返回的 DateTime 类型的对象。此函数会修改这个对象。

year

Year of the date.

week

Week of the date.

day

Offset from the first day of the week.

返回值

返回被修改的 DateTime 对象, 或者在失败时返回 FALSE.

更新日志

版本 说明
5.3.0将返回值从NULL改为 DateTime 类型。

范例

Example #1 DateTime::setISODate() example

面向对象风格

<?php
$date 
= new DateTime();

$date->setISODate(20082);
echo 
$date->format('Y-m-d') . "\n";

$date->setISODate(200827);
echo 
$date->format('Y-m-d') . "\n";
?>

过程化风格

<?php
$date 
date_create();

date_isodate_set($date20082);
echo 
date_format($date'Y-m-d') . "\n";

date_isodate_set($date200827);
echo 
date_format($date'Y-m-d') . "\n";
?>

以上例程会输出:

2008-01-07
2008-01-13

Example #2 Values exceeding ranges are added to their parent values

<?php
$date 
= new DateTime();

$date->setISODate(200827);
echo 
$date->format('Y-m-d') . "\n";

$date->setISODate(200828);
echo 
$date->format('Y-m-d') . "\n";

$date->setISODate(2008537);
echo 
$date->format('Y-m-d') . "\n";
?>

以上例程会输出:

2008-01-13
2008-01-14
2009-01-04

Example #3 Finding the month a week is in

<?php
$date 
= new DateTime();
$date->setISODate(200814);
echo 
$date->format('n');
?>

以上例程会输出:

3

参见


DateTime
PHP Manual