1 <?php 2 //获取交易统计时间戳 时间段内每小时 3 public function getPayCountTimeHours($start_date,$end_date){ 4 5 $data = array(); 6 7 //计算一共多少个小时 8 $hours = intval(($end_date-$start_date)/3600); 9 10 for($i=0; $i<$hours ;$i++){ 11 12 $arr = array(); 13 14 $arr[] = $end_date - $i*3600; 15 16 $arr[] = $end_date-($i+1)*3600; 17 18 $data[] = $arr; 19 } 20 21 if(isset($arr[1]) && $arr[1] > $start_date){ 22 $arr_m[] = $arr[1]; 23 $arr_m[] = $start_date; 24 $data[] = $arr_m; 25 } 26 27 krsort($data); 28 return $data; 29 }
1 <?php 2 //获取交易统计的时间戳 最近$date_num天 3 public function getPayCountTimeDay($date_num) 4 { 5 $firstday = strtotime('2016-07-01'); //最小时间 6 $lastday = strtotime(date('Y-m-d',strtotime('+1 day'))); 7 8 $data = array(); 9 $data_time = $lastday; 10 for($i=0;$i<$date_num;$i++){ 11 $arr = array(); 12 $arr[]=$data_time; 13 14 $data_time = $data_time-60*60*24; 15 $arr[]=$data_time; 16 17 $data[] = $arr; 18 if ($data_time<=$firstday) { 19 break; 20 } 21 } 22 krsort($data); 23 return $data; 24 }
1 <?php 2 //************** 获取本周的开始时间和结束时间戳 3 public function the_week() 4 { 5 //当前日期 6 $sdefaultDate = date("Y-m-d"); 7 //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期 8 $first=1; 9 //获取当前周的第几天 周日是 0 周一到周六是 1 - 6 10 $w=date('w',strtotime($sdefaultDate)); 11 //获取本周开始日期,如果$w是0,则表示周日,减去 6 天 12 $week_start=date('Y-m-d',strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days')); 13 //本周结束日期 14 $week_end=strtotime("$week_start +6 days") + 24*3600; //需求拿的是,结束时间的下一天 15 $week_start = strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'); 16 return [$week_start,$week_end]; 17 } 18 19 20 //***************获取交易统计的时间戳 最近$week_num周; 21 public function getPayCountTimeWeek($week_num) 22 { 23 $firstday = strtotime('2016-07-01'); 24 $time = time(); 25 $data = array(); 26 27 $last=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));//上周的结束时间戳 28 $endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'))+1; //上周的介结束时间,本周的开始时间 29 $arr = array(); 30 $arr[]=time(); 31 $arr[]=$endLastweek; 32 33 if(date('Ymd',time()) != date('Ymd',$last)){ 34 $data[]=$arr; //先将本周的时间戳放进数组里; 35 }else{ 36 $week_num += 1; 37 } 38 39 $data_time = $endLastweek; 40 for ($i=0; $i < $week_num-1 ; $i++) { 41 $arr = array(); 42 $arr[] = $data_time; 43 44 $data_time -= 24*60*60*7; 45 46 $arr[] = $data_time; 47 48 $data[]=$arr; 49 50 } 51 krsort($data); 52 return $data; 53 }
1 <?php 2 //获取交易统计时间戳 最近$month_num个月 3 public function getPayCountTimeMonth($month_num) 4 { 5 $firstday = strtotime('2016-10-01'); 6 $time = time(); 7 $data = array(); 8 9 $data_time = strtotime(date('Y-m-01')); 10 $arr[] = time(); 11 $arr[] = $data_time; 12 13 $data[] = $arr; //将本月的先放到数组里 14 15 for ($i=0; $i < $month_num-1 ; $i++) { 16 //如果少于项目开始时间直接返回; 17 if ($data_time<=$firstday) { 18 break; 19 } 20 21 $arr = array(); 22 // $arr[] = date('Y-m-d H:i:s',$data_time); 23 $arr[] = $data_time; 24 25 26 $data_time = strtotime(date("Y-m-01",strtotime("-1 month",$data_time))); 27 28 $arr[] = $data_time; 29 30 $data[]=$arr; 31 32 } 33 krsort($data); 34 return $data; 35 }