(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setISODate — Définit la date ISO
$year, int $week, int $dayOfWeek = 1): DateTimeImmutableRetourne un nouvel objet DateTimeImmutable avec la date définie en respectant le standard ISO 8601, utilisant les semaines et écarts de jour plutôt que des dates spécifiques.
yearAnnée de la date.
weekSemaine de la date.
dayOfWeekDécalage par rapport au premier jour de la semaine.
Retourne un nouvel objet DateTimeImmutable avec les données modifiées.
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ées à 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