update page now

DateTimeImmutable::setISODate

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

DateTimeImmutable::setISODateDéfinit la date ISO

Description

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

Retourne un nouvel objet DateTimeImmutable avec la date défini en respectant le standard ISO 8601, utilisant les semaines et écarts de jour plutôt que des dates spécifiques.

Liste de paramètres

year

Année de la date.

week

Semaine de la date.

dayOfWeek

Offset from the first day of the week.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setISODate()

Style orienté objet

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

L'exemple ci-dessus va afficher :

2008-01-07
2008-01-13

Style procédural

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

L'exemple ci-dessus va afficher :

2008-01-07
2008-01-13

Exemple #2 Les valeurs excédant la plage sont ajouté à leur valeur parente

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

L'exemple ci-dessus va afficher :

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

Exemple #3 Trouver le mois dont une semaine se trouve

<?php

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

L'exemple ci-dessus va afficher :

3

Voir aussi

add a note

User Contributed Notes 1 note

up
0
samuele dot catuzzi at gmail dot com
4 days ago
note that giving a week out of range will produce a date for a different year

example:
<?php
$date = new DateTimeImmutable();

$newDate = $date->setISODate(2026, 53);
echo $newDate->format('Y-m-d') . "\n";
// will print "2026-12-28"  (2026 has 53 weeks)

$newDate = $date->setISODate(2026, 54);
echo $newDate->format('Y-m-d') . "\n";
// will print 2027-01-04 which is the 1st week of 2027
?>
To Top