Мне нужно получить номер недели в php, где неделя должна быть рассчитана с воскресенья. По умолчанию он с понедельника. Пожалуйста, помогите мне найти способ получить номер недели с воскресеньем в качестве стартового дня.
В php manual ISO-8601 неделя номер года, недели, начиная с понедельника (добавлено в PHP 4.1.0)
Но мне нужно получить недельный номер года, недели, начинающиеся в воскресенье.
благодаря
Попробуй это:
$week = intval(date('W')); if (date('w') == 0) { // 0 = Sunday $week++; } echo $week;
Не уверен, что логика правильная;
Чтобы расширить ответ на шелковый огонь и позволить ему обертывать вокруг лет
if($date->format('w') == 0){ if(date('W',strtotime($date->format('Y')."-12-31"))==52 and $date->format('W') == 52){ $week = 1; } elseif(date('W',strtotime($date->format('Y')."-12-31"))==53 and $date->format('W') == 53){ $week = 1; } else{ $week++; } }
Попробуй это. для получения воскресного дня необходимо -1 день.
$date = "2015-05-25"; echo date("W", strtotime("-1 day",strtotime($date)));
первое решение не подходит 01 января 2017 года. Попробуйте следующее:
$ date = Date ('Ym-d');
echo strftime ("% U", strtotime ($ date));
Вы должны попробовать с strftime
$week_start = new DateTime(); $week = strftime("%U"); //this gets you the week number starting Sunday $week_start->setISODate(2012,$week,0); //return the first day of the week with offset 0 echo $week_start -> format('dM-Y'); //and just prints with formatting