(PHP 5 >= 5.2.0)
DateTime::setISODate — Sets the ISO date
Object oriented style
Procedural style
Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates.
Procedural style only: A DateTime object returned by date_create(). The function modifies this object.
Year of the date.
Week of the date.
Offset from the first day of the week.
Returns the modified DateTime object or FALSE on failure.
Version | Description |
---|---|
5.3.0 | Changed the return value on success from NULL to DateTime. |
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