php计算某时间段内有几个周及某时间为今年第几周函数
date_default_timezone_set('prc');function count_weeks($startdate, $enddate = ''){ //开始时间 $startdate = date('y-m-d', $startdate); //结束时间 if(empty($enddate)) { $enddate = date('y-m-d'); }else{ $enddate = date('y-m-d', $enddate); } //跨越天数 $n = (strtotime($enddate)-strtotime($startdate))/86400; //判断,跨度小于7天,可能是同一周,也可能是两周 $enddate = date(y-m-d,strtotime($enddate +1 day)); if($n=$enddate){ $weeklist[] =array('s'=>$startdate, 'e'=>date(y-m-d,strtotime($enddate -1 day))); }else{ $weeklist[] =array('s'=>$startdate, 'e'=>date(y-m-d,strtotime($week_end -1 day))); $weeklist[] =array('s'=>$week_end, 'e'=>date(y-m-d,strtotime($enddate -1 day))); } }else{ //如果跨度大于等于7天,可能是刚好1周或跨2周或跨n周,先找出开始时间 在 那周 的 位置和那周的周末时间 $day = date(w,strtotime($startdate))-1; $week_start = date(y-m-d,strtotime($startdate -{$day} day)); $day = 7-$day; $week_end = date(y-m-d,strtotime($startdate +{$day} day)); //先把开始时间那周写入数组 $weeklist[] =array('s'=>$startdate, 'e'=>date(y-m-d,strtotime($week_end -1 day))); //判断周末是否大于等于结束时间,不管大于(2周)还是等于(1周),结束时间都是时间段的结束时间。 if($week_end >= $enddate){ $weeklist[] = array('s'=>$week_end, 'e'=>date(y-m-d,strtotime($enddate -1 day))); }else{ //n周的情况用while循环一下,然后写入数组 while($week_end date(y-m-d,strtotime($week_end -1 day))); }else{ $weeklist[] = array('s'=>$start, 'e'=>date(y-m-d,strtotime($enddate -1 day))); } } } } return $weeklist;}
php获取某时间为今年第几周方法
date('w')