你要根据什么来判断?
weekNum存的是什么数据?
本年内的第几个周?

解决方案 »

  1.   

    weekNum存的是本年内的第X个周
      

  2.   

    涉及一点算法,有点意思,参考以下.你再测试一下,看有什么问题没有.
    ===========================================================
    //function:
    /**
     * get week's first and last day
     *
     * @param string $year //年份
     * @param string $weekAtYear // 周数
     * @return array $days
     */
    function getDays($year,$weekAtYear)
    {
    //找出年份第一天是星期几(1-7)
    $firstDay = date('N',strtotime("$year-01-01"));
    //找出第一个星期剩余天数,用于计数.比如2008-01-01号是星期二,则剩余6天到第一个星期天.
    $leftDayInWeek = 8 - $firstDay;
    //星期一的日期(Y-m-d)
    $days['monday'] =  date("Y-m-d",strtotime("$year-01-01")+($weekAtYear-1)*$leftDayInWeek*24*60*60);
    if($weekAtYear == 1 && $firstDay != 1)
    {//第一周,且第一天不是星期一
    $days['sunday'] =  date("Y-m-0$leftDayInWeek",strtotime($days['monday']));
    }
    else $days['sunday'] =  date("Y-m-d",strtotime($days['monday'])+6*24*60*60);
    return $days;
    }
    //use:
    $date = getDays('2007',2);
    //output:
    print_r($date);
      

  3.   

    <?php
    /*
     * 功能:取得给定日期所在周的开始日期和结束日期
     * 参数:$gdate 日期,默认为当天,格式:YYYY-MM-DD
     *       $first 一周以星期一还是星期天开始,0为星期天,1为星期一
     * 返回:数组array("开始日期", "结束日期");
     * 作者:多菜鸟
     * Email: kingerq AT msn.com
     * 来源:http://blog.csdn.net/kingerq
     */
    function aweek($gdate = "", $first = 0){
     if(!$gdate) $gdate = date("Y-m-d");
     $w = date("w", strtotime($gdate));//取得一周的第几天,星期天开始0-6
     $dn = $w ? $w - $first : 6;//要减去的天数
     $st = date("Y-m-d", strtotime("$gdate -".$dn." days"));
     $en = date("Y-m-d", strtotime("$st +6 days"));
     return array($st, $en);//返回开始和结束日期
    }
    echo implode("|", aweek("", 1));
    ?>
    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=326856
      

  4.   

    一个比较简单的:
    function get_spdate($s) {
       $g = strftime("%u",strtotime($s));
       $sdate = strftime("%Y-%m-%d",strtotime($s) - ($g-1)*86400);
       $edate = strftime("%Y-%m-%d",strtotime($s) + (7-$g)*86400);
       echo "Start Date:$sdate   End Date:$edate \n";
    }$s = "2007-02-08";
    get_spdate($s);
      

  5.   

    你是根据周数来判断的哦?
    你确定答案就是你想要的.
    我的改了一下,计数错料.:-)//function:
    /**
     * get week's first and last day
     *
     * @param string $year //year
     * @param string $weekAtYear // the week num in given year
     * @return array $days
     */
    function getDays($year,$weekAtYear)
    {
    //找出年份第一天是星期几(1-7)
    $firstDay = date('N',strtotime("$year-01-01"));
    //找出第一个星期剩余天数,用于计数.比如2008-01-01号是星期二,则剩余6天到第一个星期天.
    $leftDayInFirstWeek = 8 - $firstDay;
    //星期一的日期(Y-m-d)
    if($weekAtYear <= 2)
    {
    $days['monday'] =  date("Y-m-d",strtotime("$year-01-01")+($weekAtYear-1)*$leftDayInFirstWeek*24*60*60);
    }
    else
    {
    $days['monday'] =  date("Y-m-d",strtotime("$year-01-01")+$leftDayInFirstWeek*24*60*60+($weekAtYear-2)*7*24*60*60);
    }
    if($weekAtYear == 1 && $firstDay != 1)
    {//第一周,且第一天不是星期一
    $days['sunday'] =  date("Y-m-0$leftDayInFirstWeek",strtotime($days['monday']));
    }
    else $days['sunday'] =  date("Y-m-d",strtotime($days['monday'])+6*24*60*60);

    return $days;
    }
    //use:
    $date = getDays('2006',date("W"));
    //output:
    print_r($date);
      

  6.   

    /**
     # @param $year 年份
     # @param $week 周次
     # @return 例如:XXXX年第X周的起始日期和结束日期
    */
    function getWeekStartTimeAndEndTime($year, $week)
    {
       
    }
      

  7.   

    因为数据库表里是这样的:id, usID ,year(年份), weekNum(周次), 等在前台显示的时候我需要了解XXXX年XX周的起始结束日期.
      

  8.   

    foolbirdflyfirst(湖水清澈):兄弟好像是差了一天.
      

  9.   

    $date = getDays('2007',3);
    //output:
    print_r($date);[monday] => 2007-01-16 ==><这个是星期二>
    [sunday] => 2007-01-22
      

  10.   

    我说了你看看我最后发给你的,我改过啦!
    ======================================
    //function:
    /**
    * get week's first and last day
    *
    * @param string $year //year
    * @param string $weekAtYear // the week num in given year
    * @return array $days
    */
    function getDays($year,$weekAtYear)
    {
    //找出年份第一天是星期几(1-7)
    $firstDay = date('N',strtotime("$year-01-01"));
    //找出第一个星期剩余天数,用于计数.比如2008-01-01号是星期二,则剩余6天到第一个星期天.
    $leftDayInFirstWeek = 8 - $firstDay;
    //星期一的日期(Y-m-d)
    if($weekAtYear <= 2)
    {
    $days['monday'] = date("Y-m-d",strtotime("$year-01-01")+($weekAtYear-1)*$leftDayInFirstWeek*24*60*60);
    }
    else
    {
    $days['monday'] = date("Y-m-d",strtotime("$year-01-01")+$leftDayInFirstWeek*24*60*60+($weekAtYear-2)*7*24*60*60);
    }
    if($weekAtYear == 1 && $firstDay != 1)
    {//第一周,且第一天不是星期一
    $days['sunday'] = date("Y-m-0$leftDayInFirstWeek",strtotime($days['monday']));
    }
    else $days['sunday'] = date("Y-m-d",strtotime($days['monday'])+6*24*60*60);return $days;
    }
    //use:
    $date = getDays('2007',3);
    //output:
    print_r($date);=========
    Array ( [monday] => 2007-01-15 [sunday] => 2007-01-21 )
      

  11.   

    <?php
    //function:
    /**
    * get week's first and last day
    *
    * @param string $year //year
    * @param string $weekAtYear // the week num in given year
    * @return array $days
    */
    function getDays($year,$weekAtYear)
    {
    //找出年份第一天是星期几(1-7)
    $firstDay = date('N',strtotime("$year-01-01"));
    //找出第一个星期剩余天数,用于计数.比如2008-01-01号是星期二,则剩余6天到第一个星期天.
    $leftDayInFirstWeek = 8 - $firstDay;
    //星期一的日期(Y-m-d)
    if($weekAtYear <= 2)
    {
    $days['monday'] = date("Y-m-d",strtotime("$year-01-01")+($weekAtYear-1)*$leftDayInFirstWeek*24*60*60);
    }
    else
    {
    $days['monday'] = date("Y-m-d",strtotime("$year-01-01")+$leftDayInFirstWeek*24*60*60+($weekAtYear-2)*7*24*60*60);
    }
    if($weekAtYear == 1 && $firstDay != 1)
    {//第一周,且第一天不是星期一
    $days['sunday'] = date("Y-m-0$leftDayInFirstWeek",strtotime($days['monday']));
    }
    else $days['sunday'] = date("Y-m-d",strtotime($days['monday'])+6*24*60*60);return $days;
    }
    //use:
    $date = getDays('2007',1);
    //output:
    print_r($date);
    ?>
    =================X-Powered-By: PHP/4.4.4
    Content-type: text/htmlArray
    (
        [monday] => 2007-01-01
        [sunday] => 2007-01-08===>应该为7Q
    )
    还是错误.代码我已经换成你修改的了
      

  12.   

    .....N 
    ISO-8601 
    格式数字表示的星期中的第几天(PHP 5.1.0 新加) 1(表示星期一)到 7(表示星期天)php5.1.0新加,我用php5,没问题.//找出年份第一天是星期几(1-7)
    $firstDay = date('N',strtotime("$year-01-01"));
    ============
    改成
      

  13.   

    $firstDay = date('w',strtotime("$year-01-01"));
      

  14.   

    没php4,你再测试一下$firstDay = date('N',strtotime("$year-01-01"));
    ============================
    改成 $firstDay = date('w',strtotime("$year-01-01"));php5下测试了一下,是通过的.