Вот краткое описание проблемы: по воскресеньям strtotime('this week')
возвращает начало следующей недели.
В PHP неделя, похоже, начнется в понедельник. Но в любой день кроме воскресенья этот код
echo date('Y-m-d', strtotime('monday this week', strtotime('last sunday')));
Выводит дату этой недели в понедельник, когда кажется, что она должна выводиться в прошлые недели в понедельник. Похоже, в этом случае PHP обрабатывает как воскресенье, так и понедельник как начало недели. Это сейчас понедельник, 10 декабря 2012 года или 2012-12-10. date('Y-m-d', strtotime('sunday last week'))
возвращает 2012-12-09
- вчера.
Это ошибка, или я чего-то не хватает? Кажется, что эта ошибка очевидна, но я ничего не могу с ней поделать. Единственный способ получить начало недели, чтобы использовать специальную обработку в воскресенье?
$week_offset = (int) 'sunday' == date('l');
$week_start = strtotime("-$week_offset monday"); // 1 or 0 Mondays ago