Lecture 1 minute
En début d’année, les numéros de semaines sont toujours à la fête.
Dans le cas où l’on utilise conjointement le N° de la semaine ainsi que l’année d’une date, il y a une subtilité de la fonction date() qui peut créer un bug en tout début d’année.
Prenons la date du 01-01-2017, elle appartient à la semaine 52 de 2016.
Le code
1 2 |
$DateDisplay = '2017-01-01' ; echo 'Semaine' . date('W',strtotime($DateDisplay)) . ' de ' . date('Y',strtotime($DateDisplay)); |
affichera « Semaine 52 de 2017 », ce qui n’est pas correct.
L’option « o » de la fonction date() renvoie l’année correspondant à la semaine et non de la date
Ainsi,
1 2 |
$DateDisplay = '2017-01-01' ; echo 'Semaine' . date('W',strtotime($DateDisplay)) . ' de ' . date('o',strtotime($DateDisplay)); |
affichera « Semaine 52 de 2016 », ce qui est correct.
Sans conséquence pour un affichage mais gênant en cas d’utilisation dans un script, pouvant se croire fin 2017 au lieu de fin 2016.
Fonction date() – Source http://php.net/manual/fr/function.date.php