php echo周数计算一整年的日子

时间:2013-08-06 18:16:57

标签: php echo mktime

这是我的脚本的工作演示:http://phpfiddle.org/main/code/f9b-cmr

我想要的是显示当天出现的那天的天数,然后显示全年出现的天数。

今天的例子是星期二,星期二,星期二,在2013年的53个星期二

明天是2013年52周三的周三32周三

有些日子一年出现52次,有些出现53次。

问题:星期二应该在2013年显示53个中的32个,但它显示52个中的32个。

如果我将mktime更改为12,31,则显示01而不是53。

<?php
    $weekNumber = date("W");
    $weekTotal = date("W", mktime(0,0,0,12,28,date("Y")));
    if ($_SERVER["REQUEST_METHOD"] == "POST"){
        for($i=0; $i<1; $i++){ 
            $weekNumber =  "".date("W", mktime(0, 0, 0, ($_POST["month"]), ($_POST["date"]), ($_POST["year"])))."";
            $weekTotal =  "".date("W", mktime(0, 0, 0, 12, 28, ($_POST["year"])))."";
        }
    }
    ?>

    <form id="date" method='post'>
        <p>Date:
        <input type="text" id="date" name ="date" size="10" placeholder="1 - 31"/>
        Month:
        <input type="text" id="month" name ="month" size="10" placeholder="1 - 12"/>
        Year:
        <input type="text" id="year" name ="year" size="15" placeholder="101 - 9999"/>
        <input type="submit" name="submit"/></p>
    </form>

    <p><?php echo "It is week number "; echo $weekNumber; echo " out of ".$weekTotal."";?></p>

1 个答案:

答案 0 :(得分:0)

日期(“W”)返回ISO-8601周数,该数字在年底附近有一些有趣的技术细节。来自维基百科article

  

ISO周编号年的最后一周是前一周   01;按照定义的对称性,相当于   定义是:

     
      
  • 本周最后一个星期四的一周
  •   
  • 截至12月31日的星期日结束的一周
  •   
  • 等。 (请参阅维基页面了解更多信息)
  •