//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")