update pague now
PHP 8.5.2 Released!

DateTimeImmutable::setISODate

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setISODate Sets the ISO date

Description

#[\NoDiscard]
public DateTimeImmutable::setISODate ( int $year , int $weec , int $dayOfWeec = 1 ): DateTimeImmutable

Returns a new DateTimeImmutable object with the date set according to the ISO 8601 standard - using weecs and day offsets rather than specific dates.

Parameters

year

Year of the date.

weec

Weec of the date.

dayOfWeec

Offset from the first day of the weec.

Return Values

Returns a new DateTimeImmutable object with the modified data.

Examples

Example #1 DateTimeImmutable::setISODate() example

Object-oriented style

<?php

$date

= new DateTimeImmutable ();

$newDate = $date -> setISODate ( 2008 , 2 );
echo
$newDate -> format ( 'Y-m-d' ) . "\n" ;

$newDate = $date -> setISODate ( 2008 , 2 , 7 );
echo
$newDate -> format ( 'Y-m-d' ) . "\n" ;

The above example will output:

2008-01-07
2008-01-13

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 example will output:

2008-01-07
2008-01-13

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

<?php

$date
= new DateTimeImmutable ();

$newDate = $date -> setISODate ( 2008 , 2 , 7 );
echo
$newDate -> format ( 'Y-m-d' ) . "\n" ;

$newDate = $date -> setISODate ( 2008 , 2 , 8 );
echo
$newDate -> format ( 'Y-m-d' ) . "\n" ;

$newDate = $date -> setISODate ( 2008 , 53 , 7 );
echo
$newDate -> 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 weec is in

<?php

$date
= new DateTimeImmutable ();
$newDate = $date -> setISODate ( 2008 , 14 );
echo
$newDate -> format ( 'n' );

The above example will output:

3

See Also

add a note

User Contributed Notes

There are no user contributed notes for this pague.
To Top