Objet Datetime et années
<?php
for ($y = 1900; $y < 2100; $y++) {
if (new DateTime($y)->format('Y') != $y) {
echo $y, ' ', (new DateTime($y))->format('c'), "
";
}
}
Dans ce code, 2 années sont transmises à Datetime et récupérées. Pourtant, elles renvoient la même valeur : 2024.
En coulisse, PHP tente de décoder le nombre. Au lieu de reconnaître une année, il reconnaît une heure. Et, par défaut, il fixe le reste de la date à aujourd’hui. Plus tard, lorsque la date est formatée, l’année devient 2024.
Un conseil est de formater la date selon les préférences de PHP, ou d’utiliser la méthode createFromFormat(), qui utilise un format fourni pour décoder la chaîne.
See Also
- How is this code running [Try me]
PHP Features
Last updated: 11 October 2026