PHP Function Reference

PHP date_isodate_set() Function



The PHP date_isodate_set() function sets the date of a DateTime object, according to the ISO 8601 standard - using weeks and day offsets rather than specific dates. This function is an alias of DateTime::setISODate() method.

Syntax

//Object-oriented style
public DateTime::setISODate(year, week, dayOfWeek)

//Procedural style
date_isodate_set(object, year, week, dayOfWeek)

Parameters

object Required. For procedural style only: A DateTime object returned by date_create().
year Required. Specify an integer value representing year of the date.
week Required. Specify an integer value representing week of the date.
dayOfWeek Optional. Specify an integer value representing the day of the week. Default is 1.

Return Value

Returns the DateTime object with modified date on success, otherwise returns false.

Example: using both styles

The example below shows the usage of date_isodate_set() function.

<?php
  //creating a DateTime object
  $date = date_create();

  //setting date using Object-oriented style
  $date->setISODate(2015, 10, 2); 

  //formatting the datetime to print it
  echo date_format($date, "d-M-Y")."\n";

  //setting date using Procedural style
  date_isodate_set($date, 2015, 11, 2); 

  //formatting the datetime to print it
  echo date_format($date, "d-M-Y")."\n";
?>

The output of the above code will be:

03-Mar-2015
10-Mar-2015

Example: Modifying date of a DateTime object

This function can be used to modify date of the DateTime object to a new value. Consider the example below:

<?php
  //datetime string
  $datetime_string = "14-May-2015";

  //creating a DateTime object
  $date = date_create($datetime_string);

  //formatting the datetime to print it
  echo "Original date: ".date_format($date, "d-M-Y")."\n";

  //setting date to a new value
  date_isodate_set($date, 2016, 10, 4); 

  //formatting the datetime to print it
  echo "Modified date: ".date_format($date, "d-M-Y")."\n";
?>

The output of the above code will be:

Original date: 14-May-2015
Modified date: 10-Mar-2016

Example: Adding values exceeding ranges

When values exceeding ranges are passed to this function, they will be added to their parent values. Consider the example below:

<?php
  //creating a DateTime object
  $date = date_create();

  //setting date to a new value
  date_isodate_set($date, 2001, 10, 2);
  echo date_format($date, 'd-M-Y') . "\n";

  //setting date with exceeding range of dayOfWeek -
  //exceeding days (2 days) will be added 
  date_isodate_set($date, 2001, 10, 9);
  echo date_format($date, 'd-M-Y') . "\n";

  //setting date with exceeding range of week -
  //exceeding weeks (3 weeks) will be added
  date_isodate_set($date, 2001, 55, 2);
  echo date_format($date, 'd-M-Y') . "\n";
?>

The output of the above code will be:

06-Mar-2001
13-Mar-2001
15-Jan-2002

Example: Finding the month a week is in

The example below illustrates on finding the month a week is in.

<?php
  //creating a DateTime object
  $date = new DateTime();

  //setting date to a new value
  date_isodate_set($date, 2001, 10);

  //finding the month the week is in
  echo date_format($date, 'n') . "\n";
?>

The output of the above code will be:

3

❮ PHP Date and Time Reference