用静态函数实现获取一年内的星期列表及每周起始时间,如下:
/**
* func: getWeeks
* 功能:获取一年内星期列表、每周起始时间
* 编辑:www.jbxue.com
*/
public static function getWeeks($format="second",$year=null){
if($year == null){
$year=date('Y');
}
$second_of_day = 24*3600;
$year_start = $year . "-01-01 00:00:00";
$year_end = $year . "-12-31 23:59:59";
$startday = strtotime($year_start);
$day_of_week = date('N', $startday);
$first_week_start=$startday;
$first_week_end = $startday+(7-$day_of_week)*$second_of_day+$second_of_day-1;
$week_array[0]=array($first_week_start,$first_week_end);
$endday = strtotime($year_end);
$day_of_week = date('N', $endday);
$last_week_start=$endday-$day_of_week*$second_of_day+1;
$last_week_end = $endday;
$last_week=array($last_week_start,$last_week_end);
$during = $last_week_start - $first_week_end;
$during_total_week = intval($during/(7*$second_of_day));
for($i=0;$i
$week_array[$i+1]=array($first_week_end+(7*$i*$second_of_day)+1,$first_week_end+(($i+1)*$second_of_day*7));
}
$week_array[$during_total_week+1]=$last_week;
if($format !="second"){
foreach($week_array as $i => $week){
$week_array_of_date_format[$i]=array(date($format,$week[0]),date($format,$week[1]));
}
return $week_array_of_date_format;
}
return $week_array;
}
?>