这个应该和年份也有关系吧,闰年和非闰年也不一样吧,以一个已知的年月日做为参考对象。之后再用你的变量值与之进行比较。
例:以2008年8月4日为参考对象,这一天是第一周的星期一(为求整,以每月为4周算)。如果你想知道2008年9月11日是星期几,则总天数SUM=11(九月的天数)+28(参考基数)。之后用SUM/7所得的余数就是星期数。同理,知道星期数也可求日数,例,你想知道2008年10月的第二个星期六是几号?则总周数SUM=4+4+2。则总天数为SUM×7,则这一周的周日为SUM×7-上月天数-28,结果是12,所以周六就是11号。大概就是这个样子吧,月份和年份上判断多一些。你自已再试试看。

解决方案 »

  1.   

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