用于生成交易统计时间戳(常配合echarts走势图使用)
<?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;
     }
用于生成交易统计时间戳(常配合echarts走势图使用)的更多相关文章
- 机器学习进阶-直方图与傅里叶变化-直方图均衡化 1.cv2.equalizeHist(进行直方图均衡化)  2. cv2.createCLAHA(用于生成自适应均衡化图像)
		
1. cv2.equalizeHist(img) # 表示进行直方图均衡化 参数说明:img表示输入的图片 2.cv2.createCLAHA(clipLimit=8.0, titleGridSiz ...
 - myeclipse(2015)中创建简单的Maven项目的步骤(用于生成可执行jar文件)------》myeclipse2015
		
利用MyEclipse的引导,可以很方便的创建简单的.用于生成可执行jar文件的Maven项目: 1.New -> Project... 选择 Maven Project, 点击Next > ...
 - CROSS JOIN连接用于生成两张表的笛卡尔集
		
将两张表的情况全部列举出来 结果表: 列= 原表列数相加 行= 原表行数相乘 CROSS JOIN连接用于生成两张表的笛卡尔集. 在sql中cross join的使用: 1.返回的记录数为两个 ...
 - JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内
		
/* *JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内 *@param date1 date2(形如:'2015-01-01'类 ...
 - 用于mask遮罩效果的图片配合resizableImage使用
		
用于mask遮罩效果的图片配合resizableImage使用 效果: 作为素材用的图片: 源码: // // ViewController.m // Rect // // Created by Yo ...
 - 四、dbms_alert(用于生成并传递数据库预警信息)
		
1.概述 作用:用于生成并传递数据库预警信息.使用包DBMS_ALERT,则必须以SYS登陆,为该用户授予执行权限.sql>conn sys/oracle as sysdbasql>gra ...
 - js  获取时间戳  登陆验证码生成要加时间戳
		
JavaScript 获取当前时间戳,登陆验证码生成要加时间戳,防止存在session不重新请求第一种方法: var timestamp = Date.parse(new Date()); 结果:12 ...
 - 图文介绍MyEclipse (2015) 中创建简单的Maven项目的步骤(用于生成可运行jar文件)
		
利用MyEclipse的引导,能够非常方便的创建简单的.用于生成可运行jar文件的Maven项目: (原创文章,转载请注明转自Clement-Xu的博客:http://blog.csdn.net/cl ...
 - 个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列
		
啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就 ...
 
随机推荐
- Upgrade to postgresql 9.5
			
Add postgresql apt repo.. according to your distribution (utopic, trusty, jessie, wheezy and etc ...
 - MySQL:unknown variable 'master-host=masterIP'     [ERROR] Aborting
			
<span style="font-size:18px;">120401 15:45:44 [ERROR] C:\Program Files\MySQL\MySQL S ...
 - 数据结构与算法——AVL树类的C++实现
			
关于AVL树的简单介绍能够參考:数据结构与算法--AVL树简单介绍 关于二叉搜索树(也称为二叉查找树)能够參考:数据结构与算法--二叉查找树类的C++实现 AVL-tree是一个"加上了额外 ...
 - 苦逼IT才能看懂的笑话
			
这是苦逼IT才能看懂的笑话1.栈和队列的区别是啥? 吃多了拉就是队列:吃多了吐就是栈 2.世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到她... 3.<c++程 ...
 - django 运行python manage.py sqlall books 时报错 app has migration
			
出现这个问题的原因是版本之前的不兼容,我用的django版本是1.8.6 而 这条python manage.py sqlall books 是基于django1.0版本的. 在django1.8.6 ...
 - hdu 5316 Magician 线段树
			
链接:http://acm.hdu.edu.cn/showproblem.php? pid=5316 Magician Time Limit: 18000/9000 MS (Java/Others) ...
 - EC知识总结ITE5570
			
以笔记本上的EC ITE5570进行讲解 ITE EC代码解析 1.一简介 EC(Embed Controller,嵌入式控制器)是一个16位单片机,它内部本身也有一定容量的Flash来存储EC的代 ...
 - HSSFWorkbook
			
public ActionResult excelPrint() { HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个Excel文件 HSSFShe ...
 - mysql导入数据库_仅仅用frm向mysql导入表结构
			
网上一个连接mysql的jsp代码段,给了数据库的备份文件.可是仅仅有frm, mysql的每张表有三个文件.各自是,*.frm是描写叙述了表的结构.*.MYD保存了表的数据记录.*.MYI则是表的索 ...
 - MongoDB 操作手冊CRUD 事务 两步提交
			
运行两步提交 概述 这部分提供了多记录更新或者多记录事务.使用两步提交来完毕多记录写入的模板. 另外.能够扩展此方法来提供rollback-like功能. 背景 MongoDB对于单条记录的操作是原子 ...