date()函數:
PHP date() 參考:https://www.hi-docs.com/php/date.html
Linux date()參考:http://www.cnblogs.com/barrychiao/archive/2012/10/08/2715808.html
獲取某時間段以周、月、季度為粒度的時間段數組
1 function getdays($day){//指定天的周一和周天 2 $lastday=date('Y-m-d',strtotime("$day Sunday")); 3 $firstday=date('Y-m-d',strtotime("$lastday -6 days")); 4 return array($firstday,$lastday); 5 } 6 function getmonths($day){//指定月的第一天和最后一天 7 $firstday = date('Y-m-01',strtotime($day)); 8 $lastday = date('Y-m-d',strtotime("$firstday +1 month -1 day")); 9 return array($firstday,$lastday); 10 11 } 12 /** 13 * 輸入開始時間,結束時間,粒度(周,月,季度) 14 * @param 參數一:開始時間 15 * @param 參數二:結束時間 16 * @param 參數三:粒度(周,月,季度) 17 * @return 時間段字符串數組 18 */ 19 function get_ld_times($st,$et,$ld){ 20 if($ld=='周'){ 21 $timeArr=array(); 22 $t1=$st; 23 $t2=getdays($t1)['1']; 24 while($t2<$et || $t1<=$et){//周為粒度的時間數組 25 $timeArr[]=$t1.','.$t2; 26 $t1=date('Y-m-d',strtotime("$t2 +1 day")); 27 $t2=getdays($t1)['1']; 28 $t2=$t2>$et?$et:$t2; 29 } 30 return $timeArr; 31 }else if($ld=='月'){ 32 $timeArr=array(); 33 $t1=$st; 34 $t2=getmonths($t1)['1']; 35 while($t2<$et || $t1<=$et){//月為粒度的時間數組 36 $timeArr[]=$t1.','.$t2; 37 $t1=date('Y-m-d',strtotime("$t2 +1 day")); 38 $t2=getmonths($t1)['1']; 39 $t2=$t2>$et?$et:$t2; 40 } 41 return $timeArr; 42 }else if($ld=='季度'){ 43 $tStr=explode('-',$st); 44 $month=$tStr['1']; 45 if($month<=3){ 46 $t2=date("$tStr[0]-03-31"); 47 }else if($month<=6){ 48 $t2=date("$tStr[0]-06-30"); 49 }else if($month<=9){ 50 $t2=date("$tStr[0]-09-30"); 51 }else{ 52 $t2=date("$tStr[0]-12-31"); 53 } 54 $t1=$st; 55 $t2=$t2>$et?$et:$t2; 56 $timeArr=array(); 57 while($t2<$et || $t1<=$et){//月為粒度的時間數組 58 $timeArr[]=$t1.','.$t2; 59 $t1=date('Y-m-d',strtotime("$t2 +1 day")); 60 $t2=date('Y-m-d',strtotime("$t1 +3 months -1 day")); 61 $t2=$t2>$et?$et:$t2; 62 } 63 return $timeArr; 64 }else{ 65 return array('參數錯誤!'); 66 } 67 }