用于生成交易统计时间戳(常配合echarts走势图使用)

 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     }

 

转载于:https://www.cnblogs.com/pyspang/p/9522493.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值