<?php /** * 獲取交易統計時間戳 時間段內每小時 */
public function getPayCountTimeHours($start_date,$end_date) { $data = array(); //計算一共多少個小時
$hours = intval(($end_date-$start_date)/3600); for($i=0; $i<$hours ;$i++){ $arr = array(); $arr[] = $end_date - $i*3600; $arr[] = $end_date-($i+1)*3600; $data[] = $arr; } if(isset($arr[1]) && $arr[1] > $start_date){ $arr_m[] = $arr[1]; $arr_m[] = $start_date; $data[] = $arr_m; } krsort($data); return $data; } /** * 獲取交易統計的時間戳 最近$date_num天 */
public function getPayCountTimeDay($date_num) { $firstday = strtotime('2016-07-01'); //最小時間
$lastday = strtotime(date('Y-m-d',strtotime('+1 day'))); $data = array(); $data_time = $lastday; for($i=0;$i<$date_num;$i++){ $arr = array(); $arr[]=$data_time; $data_time = $data_time-60*60*24; $arr[]=$data_time; $data[] = $arr; if ($data_time<=$firstday) { break; } } krsort($data); return $data; } /** * 獲取本周的開始時間和結束時間戳 */
public function the_week() { //當前日期
$sdefaultDate = date("Y-m-d"); //$first =1 表示每周星期一為開始日期 0表示每周日為開始日期
$first=1; //獲取當前周的第幾天 周日是 0 周一到周六是 1 - 6
$w=date('w',strtotime($sdefaultDate)); //獲取本周開始日期,如果$w是0,則表示周日,減去 6 天
$week_start=date('Y-m-d',strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days')); //本周結束日期
$week_end=strtotime("$week_start +6 days") + 24*3600; //需求拿的是,結束時間的下一天
$week_start = strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'); return [$week_start,$week_end]; } /** * 獲取交易統計的時間戳 最近$week_num周; */
public function getPayCountTimeWeek($week_num) { $firstday = strtotime('2016-07-01'); $time = time(); $data = array(); $last=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));//上周的結束時間戳
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'))+1; //上周的介結束時間,本周的開始時間
$arr = array(); $arr[]=time(); $arr[]=$endLastweek; if(date('Ymd',time()) != date('Ymd',$last)){ $data[]=$arr; //先將本周的時間戳放進數組里;
}else{ $week_num += 1; } $data_time = $endLastweek; for ($i=0; $i < $week_num-1 ; $i++) { $arr = array(); $arr[] = $data_time; $data_time -= 24*60*60*7; $arr[] = $data_time; $data[]=$arr; } krsort($data); return $data; } /** * 獲取交易統計時間戳 最近$month_num個月 */
public function getPayCountTimeMonth($month_num) { $firstday = strtotime('2016-10-01'); $time = time(); $data = array(); $data_time = strtotime(date('Y-m-01')); $arr[] = time(); $arr[] = $data_time; $data[] = $arr; //將本月的先放到數組里
for ($i=0; $i < $month_num-1 ; $i++) { //如果少於項目開始時間直接返回;
if ($data_time<=$firstday) { break; } $arr = array(); // $arr[] = date('Y-m-d H:i:s',$data_time);
$arr[] = $data_time; $data_time = strtotime(date("Y-m-01",strtotime("-1 month",$data_time))); $arr[] = $data_time; $data[]=$arr; } krsort($data); return $data; }