Трябва да посочите режим 3 при извикването на mysql YEARWEEK:
SELECT YEARWEEK(now(),3);
PHP date()
заместител W
връща номера на седмицата според спецификацията на ISO 8601
. Това означава, че седмиците започват в понеделник (не неделя), първата седмица от годината е номер 1 (не 0) и тази седмица е първата, която с повече от половината дни в новата година (така че трябва да е януари до четвъртък). Съгласно документацията за MySQL Функция WEEK
, тази комбинация от опции е режим 3.
Също така, за да изтеглите бележката на Алес в приетия отговор, защото е важно:заместителите Y
и W
не ходете заедно. Ако искате годината, която върви с номера на седмицата по ISO, трябва да използвате o
вместо Y
. Например, помислете за седмицата, започваща в понеделник, 29 декември 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