PHP 周转换为日期(最后一天) date("o-W")转Y-m-d日期——贴上代码

//o-W week 转换为普通日期 周的最后一天
    public function weekToDate($oW){
        $oW = explode("-", $oW);    //拆分o-W周 为年和周数
        $year = $oW[0]; //年
        $week = $oW[1]; //周数
        $weekYearBegin = date("w",strtotime($year."-01-01"));   //年初1月1是星期几,0-6,0是周日,1-6是周一到周六
        $WYearBegin = date("W",strtotime($year."-01-01"));  //年初1月1是第几周,可能是该年第一周:01,也可能是上年最后一周:52
        if($WYearBegin == "01"){    //该年的第一周
            $days = (7-$weekYearBegin)%7 + (int)($week-$WYearBegin)*7;  //需要计算的周的最后一天(星期天),距离年初1月1有多少天
        }else{  //上年的最后一周
            $days = (7-$weekYearBegin)%7 + (int)($week)*7;  ////需要计算的周的最后一天(星期天),距离年初1月1有多少天
        }
        $lastDayOfW = date("Y-m-d",strtotime($year."-01-01 +".$days." days"));  //因为是求最后一天(星期天),所以一定落在该年($year),或者下一年,而不会落在上一年 用$year +n days
        return $lastDayOfW;
    }

以上为整个代码实现,返回为所求date("o-W")周的最后一天(周日)的日期 date("Y-m-d")

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。