DateTime::setDate
DateTime::setTime
DateTime
PHP Manual

# DateTime::setISODate

# date_isodate_set

Sets the ISO date

### Description

Object oriented style

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

Procedural style

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.

### Parameters

`object`

  Procedural style only: A DateTime object returned by date_create. The function modifies this object.

`year`

  Year of the date.

`week`

  Week of the date.

`day`

  Offset from the first day of the week.

### Return Values

Returns the DateTime object for method chaining or `FALSE` on failure.

### Changelog

Version | Description
--- | ---
5.3.0 | Changed the return value on success from `NULL` to DateTime.

### Examples

Example #1 DateTime::setISODate example

Object oriented style

`<?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";
?>`

Procedural style

`<?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";
?>`

The above examples will output:

    2008-01-07
    2008-01-13

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

`<?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";
?>`

The above example will output:

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

Example #3 Finding the month a week is in

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

The above examples will output:

    3

### See Also

- DateTime::setDate
- DateTime::setTime