Как говорится в заголовке, функция PHP date ("W") возвращает календарную неделю (для текущего дня). К сожалению, он дает 52 или 53 за первый день (дни) большинства лет. С простой точки зрения, это правильно, но очень раздражает, поскольку 1 января 2012 года - это не 52 календарная неделя, это НЕ календарная неделя текущего года. В большинстве календарей это определяется как неделя 0 или неделя 52 предыдущего года.
Это очень сложно, когда вы группируете каждый день года по календарной неделе: 1 января 2012 года и 31 декабря 2012 года помещаются в одну и ту же группу календарных недель.
Итак, мой вопрос: существует ли (родная) альтернатива дате PHP ("W") с учетом года?
РЕДАКТИРОВАТЬ: Я думаю, что я написал первую версию этого вопроса очень неясным образом, так что это мое редактирование: я ищу функцию, которая возвращает правильную календарную неделю для первого дня (дней) года. Дата PHP («W») возвращает 52 на 1 января 2012 года, что «неверно». Это должно быть 0 или ноль. Согласно официальным источникам, первая календарная неделя в году начинается в первый понедельник года. Итак, если первый день года не понедельник, значит, это не первая неделя! Сейчас неделя 0. В статье в Википедии говорится
Если 1 января приходится на понедельник, вторник, среду или четверг, это происходит на неделе 01. Если 1 января приходится на пятницу, субботу или воскресенье, это происходит на 52 или 53 неделе предыдущего года. em >
Это становится непросто, поскольку последние дни года также находятся на 52/53 неделе. дата ("W") не делится на текущий год и предыдущий год.