È necessario specificare la modalità 3 nella chiamata mysql YEARWEEK:
SELECT YEARWEEK(now(),3);
Il PHP date()
segnaposto W
restituisce il numero della settimana in base alla specifica ISO 8601
. Ciò significa che le settimane iniziano il lunedì (non la domenica), la prima settimana dell'anno è la numero 1 (non 0) e quella settimana è la prima con più della metà dei suoi giorni nel nuovo anno (quindi deve essere gennaio entro giovedì). Secondo la documentazione per MySQL funzione SETTIMANA
, quella combinazione di opzioni è la modalità 3.
Inoltre, inserire la nota di Alles nella risposta accettata perché è importante:i segnaposto Y
e W
non andare insieme. Se desideri l'anno corrispondente al numero della settimana ISO, dovresti utilizzare o
invece di Y
. Ad esempio, considera la settimana che inizia lunedì 29 dicembre 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