PHP获取一段时间内的日期列表的例子

来源:常见问题 2014-03-21

代码如下复制代码
/*
*参数分别是开始时间戳,结束时间戳
*/
function timeList($beginTimeStamp,$endTimeStamp){
 if(!is_numeric($beginTimeStamp)||!is_numeric($endTimeStamp)||($endTimeStamp<=$beginTimeStamp)) return '';
 $tmp=array();
    for($i=$beginTimeStamp;$i<=$endtimestamp;$i+=(24*3600)){
  $tmp['timeStampList'][]=$i;
        $tmp['dayList'][]=date('Y年m月d日',$i);
  $tmp['dayWeek'][]=getWeek($i);
    }
 return $tmp;
}
function getWeek($timestamp){
 $timestamp=date('w',$timestamp);
 $str=''; 
 switch($timestamp){
  case '0':
   $str.='周日';
  break;
  case '1':
   $str.='周一';
  break;
  case '2':
   $str.='周二';
  break;
  case '3':
   $str.='周三';
  break;
  case '4':
   $str.='周四';
  break;
  case '5':
   $str.='周五';
  break;
  case '6':
   $str.='周六';
  break;
 }
 return $str;
}


php获取某段时间内每个月的方法,返回由这些月份组成的数组

 代码如下复制代码

/** 
* 生成从开始月份到结束月份的月份数组
* @param int $start 开始时间戳
* @param int $end 结束时间戳
*/ 
function monthList($start,$end){
 if(!is_numeric($start)||!is_numeric($end)||($end<=$start)) return '';
 $start=date('Y-m',$start);
 $end=date('Y-m',$end);
 //转为时间戳
 $start=strtotime($start.'-01');
 $end=strtotime($end.'-01');
 $i=0;//http://www.phpernote.com/php-function/224.html
 $d=array();
 while($start<=$end){
  //这里累加每个月的的总秒数 计算公式:上一月1号的时间戳秒数减去当前月的时间戳秒数
  $d[$i]=trim(date('Y-m',$start),' ');
  $start+=strtotime('+1 month',$start)-$start;
  $i++;
 } 
 return $d;
}例如:

echo '

';print_r(monthList(1395283229,1398960000));


例如:

echo '

';print_r(monthList(1395283229,1398960000));结果将得到如下:

Array
(
    [0] => 2014-03
    [1] => 2014-04
    [2] => 2014-05
)