(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setISODate — Définit la date ISO
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.
objectStyle procédural uniquement : Un objet DateTime retourné par la fonction date_create(). Cette fonction modifie cet objet.
yearAnnée de la date.
weekSemaine de la date.
dayOfWeekOffset from the first day of the week.
   Retourne un nouvel objet modifié
 DateTimeImmutable  ou false si une erreur survient.
  
Exemple #1 Exemple de DateTimeImmutable::setISODate()
Style orienté objet
<?php
$date = new DateTimeImmutable();
$date->setISODate(2008, 2);
echo $date->format('Y-m-d') . "\n";
$date->setISODate(2008, 2, 7);
echo $date->format('Y-m-d') . "\n";
?>
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";
?>
Les exemples ci-dessus vont 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');
?>
Les exemples ci-dessus vont afficher :
3