[PHP] date('W') 의 버그(?)

PHP 2012. 5. 11. 10:15

PHP의 날짜관련 함수인 date의 여러 포맷중에 대문자 W 는 몇번째 주(week)인지를 출력해준다.

근데 이게 오동작하는 것처럼 보이는 경우가 발생했다.


2010년 1월 1일을 출력해보면 53번째 주라고 나온다.


// 아래의 출력결과는 2009-53 이다.

echo date('Y-W', mktime(0,0,0,1,1,2010));


도무지 이상해서 좀 찾아봤더니 ISO-8601에 정의된 대로 정확히 동작하고 있는 중이었다.


첫번째 주는 해당 년도의 날짜중 첫번째 목요일이 있는 주다.


그러므로 2010년 1월 1일 ~ 3일 까지는 2010년의 첫번째 주가 아니라 2009년의 53번째 주로 간주된다.

와 그지같아...


참조: http://en.wikipedia.org/wiki/ISO_week_date#First_week

Posted by bloodguy
,