Du skal angive tilstand 3 på mysql YEARWEEK opkaldet:
SELECT YEARWEEK(now(),3);
PHP date()
pladsholder W
returnerer ugenummeret i henhold til ISO 8601-specifikationen
. Det betyder, at uger starter på mandag (ikke søndag), den første uge i året er nummer 1 (ikke 0), og den uge er den første, der med mere end halvdelen af sine dage i det nye år (så det skal være januar) senest torsdag). Ifølge dokumentationen til MySQL UGE-funktion
, denne kombination af muligheder er tilstand 3.
Også for at trække Alles' notat ind i det accepterede svar, fordi det er vigtigt:pladsholderne Y
og W
gå ikke sammen. Hvis du vil have året, der følger med ISO-ugenummeret, skal du bruge o
i stedet for Y
. Overvej f.eks. ugen, der starter mandag 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