Numéro de semaine et année

Choses à faire attention quand vous utilisez les numéros de semaine avec l’année.

<?php
echo date("Y-W", strtotime("2011-01-07")); // affiche 2011-01
 
echo date("Y-W", strtotime("2011-12-31")); // affiche 2011-52
echo date("Y-W", strtotime("2011-01-01")); // affiche 2011-52 aussi !!
 
echo date("Y-W", strtotime("2007-12-31")); // affiche 2007-01 : c'est logiquement faux !
echo date("Y-W", strtotime("2008-01-01")); // affiche 2008-01
?>

MAIS

<?php
echo date("o-W", strtotime("2011-01-07")); // affiche 2011-01
 
echo date("o-W", strtotime("2011-12-31")); // affiche 2011-52
echo date("o-W", strtotime("2011-01-01")); // affiche 2010-52 : au 1er janvier 2011, on est bien dans la 52ème semaine de l'année 2010
 
echo date("o-W", strtotime("2007-12-31")); // affiche 2008-01 : au 31 décembre 2007, on est bien dans la 1ère semaine de l'année 2008
echo date("o-W", strtotime("2008-01-01")); // affiche 2008-01
?>

Raison :

Conclusion: Si vous utilisez ‘W’ pour le numéro de semaine, utilisez ‘o’ for l’année.