如果这周是第11周,则得到15 16 17 18 19 20 21。 每个周当然 都是从星期一开始的。下面是代码:
<?php
$week_number=10;
$year=date('Y');
for($day=1; $day<=7; $day++)
echo date('d', strtotime($year."W".$week_number.$day));
?>当$week_number取大于等于10时,上面的方法正常运行,可当它取小于10的数时得不到正确的结果,谁知道为什么吗? 

解决方案 »

  1.   

    如果这周是第11周,则得到15 16 17 18 19 20 21。 每个周当然 都是从星期一开始的。
    ---------------------------不明白,为什么是第11周会得到 15 16 17 18...那12周呢?strtotime($year."W".$week_number.$day) //中间那个W是什么,代表月?  "年W周日" ??
      

  2.   

    根据周数来得到该周日期以前有个帖子讨论过,我写了个代码与楼主交流
    function weeknumToweekday($weeknum)
    {
    $year = date("Y");
    $weeksofyear = date("W",strtotime("$year-12-31"));
    if($weeknum < 1 || $weeknum > $weeksofyear)
    {
    return false;
    }
    $nowweek = date("W");
    $offweek = $weeknum-$nowweek;
    $nowdayofweek = date("N");
    $weeddateshow = "<table><th colspan=7>The $weeknum"."th week of year $year"."</th><tr><td>Mo</td><td>Tu</td><td>We</td><td>Th</td><td>Fr</td><td>Sa</td><td>Su</td></tr><tr>";//你可以自己修改显示样式
    for($i=1;$i<=7;$i++)
    {

    $nowdayofweek--; 
    $offday = -$nowdayofweek;
    $weeddateshow .= "<td>".date("Y-m-d",strtotime("$offweek week $offday day"))."</td>";
    }
    $weeddateshow .= "</tr></table>";
    return $weeddateshow;
    }
    echo weeknumToweekday(11);//示例——第49周的日期