Я новичок в php и ищу фрагмент номера недели в месяц и каков текущий номер недели в текущем месяце. Спасибо за тех, кто ответитPHP: Как получить номер недели в месяц
ответ
Я использую это.
<?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
, если я хотел бы начать первая неделя в качестве первого воскресенья месяца? –
Нравится что? Код в порядке с воскресеньем в первый день недели. То же, что и в течение месяца. – Irvin
, так как нов 1 - вторник, поэтому первое воскресенье месяца должно быть нов. 6 –
Использование простого
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
Я думаю, что OP хотел бы подсчитать количество недель в текущем месяце, а не «недельный номер года». – Irvin
Ahhhhaaa ..... Возможно, вы правы @Irvin .... Возможно, можно было бы добавить это как альтернативу ... но *** Спасибо, в любом случае, чтобы указать на вероятность ... *; -) * * – Poiz
У меня также есть номер недели –
Проверить это http://stackoverflow.com/questions/5853380/php-get-number-of-week-for-month – Melchizedek