Как получить чувствительную календарную неделю года -? дата («W» )возвращает 52 на 1 января

Как сказано в заголовке, PHP-функция date ("W" )возвращает календарную неделю (для текущего дня ). К сожалению, он возвращает 52 или 53 за первый день (с )большинства лет. Это, с точки зрения простого мышления, правильно, но очень раздражает, поскольку 1 января 2012 года — это не 52-я календарная неделя, это НЕ календарная неделя текущего года. В большинстве календарей это определяется как неделя 0 или неделя 52 предыдущего года.

Это очень сложно, когда вы группируете каждый день года по календарной неделе :1 января 2012 года и 31 декабря 2012 года помещаются в одну и ту же группу календарных недель.

Итак, мой вопрос: :Существует ли (собственный )год -чувствительная альтернатива дате PHP ("W" )?

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

Если 1 января приходится на понедельник, вторник, среду или четверг, это будет неделя 01. Если 1 января приходится на пятницу, субботу или воскресенье, это будет 52 или 53 неделя предыдущего года.

Это становится сложным, поскольку последние дни года также приходятся на неделю 52/53. дата ("W" )не делится на текущий год и предыдущий год.

7
задан Sliq 1 August 2012 в 13:59
поделиться