Du måste ange läge 3 på mysql YEARWEEK-anropet:
SELECT YEARWEEK(now(),3);
PHP date()
platshållare W
returnerar veckonummer enligt ISO 8601-specifikationen
. Det betyder att veckorna börjar på måndag (inte söndag), den första veckan på året är nummer 1 (inte 0), och den veckan är den första som har mer än hälften av sina dagar på det nya året (så det måste vara januari senast på torsdag). Enligt dokumentationen för MySQL WEEK-funktion
, den kombinationen av alternativ är läge 3.
Dessutom, för att dra in Alles anteckning i det accepterade svaret eftersom det är viktigt:platshållarna Y
och W
gå inte tillsammans. Om du vill ha årtalet som följer med ISO-veckanumret bör du använda o
istället för Y
. Tänk till exempel på veckan som börjar måndagen den 29 december 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