【问题标题】:PHP: How to get week number in a month [duplicate]PHP:如何获得一个月的周数[重复]
【发布时间】:2016-11-23 02:54:02
【问题描述】:

我是 php 新手,正在寻找一个月中周数的 sn-p 以及今天月份的当前周数。谢谢热心人解答

【问题讨论】:

标签: php date web calendar


【解决方案1】:

使用如下所示的简单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   

祝你好运

【讨论】:

  • 我认为 OP 想要的是计算当前月份的 number of weeks 而不是 week number of the year
  • Ahhhhaaa.....你可能是对的@Irvin....也许,也可以添加它作为替代...但是谢谢,无论如何指出概率... ;-)
  • 我也有一年的周数
  • $date = date('Y-m-d'); $newdate = strtotime ('W', strtotime ($date)) ; $newdate = 日期 ('W' , $newdate );回声 $newdate;
【解决方案2】:

我正在使用这个。

<?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

演示

https://eval.in/683361

【讨论】:

  • 如果我想从每月的第一个星期日开始第一周?
  • 像什么?该代码适用于星期日作为一周的第一天。与月份相同。
  • 因为 11 月 1 日是星期二,因此每月的第一个星期日必须是 11 月 6 日
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-14
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
相关资源
最近更新 更多