2015-10-22 2 views
-1

Я ищу способ вычисления максимального числа недель для данного года в PHP. С прошлой недели число года определяется тем, какая неделя имеет первый четверг в новом году, я не совсем уверен, как это сделать.Рассчитать максимальный номер недели в PHP

date('W', strtotime($year.'-12-31 23:59:59')); 

также может уже вернуться 1, если 31 декабря является понедельник, вторник или среду. Поэтому я подумал, может быть, так оно и есть?

date('N', strtotime($year.'-12-31 23:59:59')) <= 3 ? 52 : 53; 

т.е. проверка, если последний день года является понедельник, вторник или среду, и если да, то это 52 недели года, в противном случае 53 неделя года. Не уверен, что это правильный путь.

+7

Возможный дубликат [HTTP: //stackoverflow.com/questions/3319386/php-get-last-week-number-in-year](http://stackoverflow.com/questions/3319386/php-get-last -week-number-in-year) –

+0

Thx, помеченный как таковой. – fritzmg

ответ

0

Чтобы получить ISO номер недели (1-53), используйте: -

idate('W', $timestamp) 

или используйте: -

$date1 = "2015-12-12"; 
$date = new DateTime($date1); 
$week = $date->format("W"); 
echo "total week: $week"; 

или попробовать это: -

date("W", strtotime('2015-12-12')) 
+0

Я не хочу получать номер недели ISO определенной даты. Я хочу получить максимальный номер недели ISO определенного года. Ни одно из ваших решений не будет работать: 'date (" W ", strtotime ('2015-12-12'))' просто даст '50'. Но я предполагаю, что это опечатка, и вы имеете в виду «date» («W», strtotime («2015-12-31»)), - однако это не сработало бы, потому что это дало бы '53' и' date («W», strtotime ('2018-12-31')) 'например, дал бы' 01'. – fritzmg

+0

вы можете попробовать ** idate ** ??? –

+0

'idate' не создаст другого результата. См. Связанный вопрос для правильного ответа. – fritzmg

Смежные вопросы