Musisz określić tryb 3 w wywołaniu mysql YEARWEEK:
SELECT YEARWEEK(now(),3);
PHP date()
symbol zastępczy W
zwraca numer tygodnia zgodnie ze specyfikacją ISO 8601
. Oznacza to, że tygodnie zaczynają się w poniedziałek (nie w niedzielę), pierwszy tydzień roku ma numer 1 (nie 0), a ten tydzień jest pierwszym, który ma więcej niż połowę dni w nowym roku (więc musi to być styczeń do czwartku). Zgodnie z dokumentacją MySQL TYDZIEŃ funkcja
, ta kombinacja opcji to tryb 3.
Ponadto, aby umieścić notatkę Allesa w zaakceptowanej odpowiedzi, ponieważ jest to ważne:symbole zastępcze Y
i W
nie idźcie razem. Jeśli chcesz, aby rok był zgodny z numerem tygodnia ISO, powinieneś użyć o
zamiast Y
. Rozważmy na przykład tydzień rozpoczynający się w poniedziałek 29 grudnia 2014 r.:
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