最近在做一個關於日程表的項目,給出一個開始時間和一個結束時間,需要列出這個時間段內的日期列表並同時判斷是周幾。經過研究,得出如下方法,和大家共享,方便有需要的朋友。
先貼一下此次需求的效果圖:
代碼如下 復制代碼 /*
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
)