2016-11-23 1 views

ответ

0

Я использую это.

<?php 

function weeks($month, $year){ 
    $firstday = date("w", mktime(0, 0, 0, $month, 1, $year)); 
    $lastday = date("t", mktime(0, 0, 0, $month, 1, $year)); 
    $count_weeks = 1 + ceil(($lastday-7+$firstday)/7); 
    return $count_weeks; 
} 

echo weeks(11,2016)."<br/>"; 

?> 

Результат:

5 

DEMO

https://eval.in/683361

+0

, если я хотел бы начать первая неделя в качестве первого воскресенья месяца? –

+0

Нравится что? Код в порядке с воскресеньем в первый день недели. То же, что и в течение месяца. – Irvin

+0

, так как нов 1 - вторник, поэтому первое воскресенье месяца должно быть нов. 6 –

1

Использование простого DateTime() Класс, как показано ниже, может сделать. Просто измените значение переменной $anyDate Variable в соответствии с любой датой, которую вы предпочитаете, и вам хорошо идти. $weekNum будет номер недели, соответствующий предоставленной дате ($anyDate) Quick-Test Here.

<?php 

    $anyDate = "2016-11-22"; 
    $objDT  = new DateTime($anyDate); 
    $weekNum = $objDT->format('W');  //<== RETURNS THE WEEK NUMBER OF $anyDate 

    var_dump($weekNum);     //<== YIELDS:: string '47' (length=2)  

С другой стороны, если вы заинтересованы в Неделе месяца в контексте текущей даты (то есть, как в: 3-я неделя ноября или что-то подобное); вы можете изменить свой код, как показано ниже. Quick Test Here.

<?php 
    $firstDayOfMonth = "2016-11-01"; 
    $currentDate  = "2016-11-22"; 
    $dtCurrent   = new \DateTime($currentDate); 
    $dtFirstOfMonth  = new \DateTime($firstDayOfMonth); 
    $numWeeks   = 1 + (intval($dtCurrent->format("W")) - 
           intval($dtFirstOfMonth->format("W"))); 

    var_dump($numWeeks);    //<== YIELDS:: int 4  
            //<== 22ND IS THE 4TH WEEK IN THE MONTH OF NOVEMBER 

            //<== ONE CAN EQUALLY READ IT THUS: 22ND FALLS INTO 
            //<== WEEK NR. 4 IN THE MONTH OF NOVEMBER 

Приветствия и Good-Luck

+0

Я думаю, что OP хотел бы подсчитать количество недель в текущем месяце, а не «недельный номер года». – Irvin

+0

Ahhhhaaa ..... Возможно, вы правы @Irvin .... Возможно, можно было бы добавить это как альтернативу ... но *** Спасибо, в любом случае, чтобы указать на вероятность ... *; -) * * – Poiz

+0

У меня также есть номер недели –