Vous devez spécifier le mode 3 sur l'appel mysql YEARWEEK :
SELECT YEARWEEK(now(),3);
Le PHP date()
espace réservé W
renvoie le numéro de semaine selon la spécification ISO 8601
. Cela signifie que les semaines commencent le lundi (pas le dimanche), la première semaine de l'année est le numéro 1 (pas 0), et cette semaine est la première avec plus de la moitié de ses jours dans la nouvelle année (il doit donc être janvier d'ici jeudi). Selon la documentation de MySQL Fonction SEMAINE
, cette combinaison d'options est le mode 3.
Aussi, pour insérer la note d'Alles dans la réponse acceptée car c'est important :les espaces réservés Y
et W
ne vont pas ensemble. Si vous voulez l'année qui va avec le numéro de semaine ISO, vous devez utiliser o
au lieu de Y
. Par exemple, considérons la semaine commençant le lundi 29 décembre 2014 :
date('YW', mktime(0,0,0,12,29,2014)); #=> 201401 : 1st week of 2014??
date('oW', mktime(0,0,0,12,29,2014)); #=> 201501 : better