萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP獲取一段時間內的日期列表的例子

PHP獲取一段時間內的日期列表的例子

我們需要寫一個簡單的函數可以獲取指定時間日期內的一段日期列表,下面我找到一個比較合適的方法與各位朋友分享。

最近在做一個關於日程表的項目,給出一個開始時間和一個結束時間,需要列出這個時間段內的日期列表並同時判斷是周幾。經過研究,得出如下方法,和大家共享,方便有需要的朋友。

先貼一下此次需求的效果圖:

PHP如何獲取一段時間內的日期列表

 代碼如下 復制代碼 /*
*參數分別是開始時間戳,結束時間戳
*/
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 '<pre>';print_r(monthList(1395283229,1398960000));


例如:

echo '<pre>';print_r(monthList(1395283229,1398960000));結果將得到如下:

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

copyright © 萬盛學電腦網 all rights reserved