php获取一年内的星期列表及每周起始时间的实例代码

发布时间:2019-12-15编辑:脚本学堂
本文分享下,用php实现的获取一年内的星期列表及每周起始时间的一段代码,有需要的朋友参考下。

用静态函数实现获取一年内的星期列表及每周起始时间,如下:

<?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;
}
?>