用静态函数实现获取一年内的星期列表及每周起始时间,如下:
<?php /** * func: getWeeks * 功能:获取一年内星期列表、每周起始时间 * 编辑:www.jb200.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<$during_total_week;$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; } ?>