【发布时间】:2016-11-23 02:54:02
【问题描述】:
我是 php 新手,正在寻找一个月中周数的 sn-p 以及今天月份的当前周数。谢谢热心人解答
【问题讨论】:
我是 php 新手,正在寻找一个月中周数的 sn-p 以及今天月份的当前周数。谢谢热心人解答
【问题讨论】:
使用如下所示的简单
DateTime()类可以做到。只需更改$anyDate变量的值以适合您喜欢的任何日期,您就可以开始了。$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)
另一方面,如果您对当前日期的上下文中的月份中的一周感兴趣(即,如:11 月的第 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
祝你好运
【讨论】:
number of weeks 而不是 week number of the year。
我正在使用这个。
<?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
演示
【讨论】: