<?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. 机器学习进阶-直方图与傅里叶变化-直方图均衡化 1.cv2.equalizeHist(进行直方图均衡化) 2. cv2.createCLAHA(用于生成自适应均衡化图像)

    1. cv2.equalizeHist(img)  # 表示进行直方图均衡化 参数说明:img表示输入的图片 2.cv2.createCLAHA(clipLimit=8.0, titleGridSiz ...

  2. myeclipse(2015)中创建简单的Maven项目的步骤(用于生成可执行jar文件)------》myeclipse2015

    利用MyEclipse的引导,可以很方便的创建简单的.用于生成可执行jar文件的Maven项目: 1.New -> Project... 选择 Maven Project, 点击Next > ...

  3. CROSS JOIN连接用于生成两张表的笛卡尔集

    将两张表的情况全部列举出来 结果表: 列= 原表列数相加 行= 原表行数相乘     CROSS JOIN连接用于生成两张表的笛卡尔集. 在sql中cross join的使用: 1.返回的记录数为两个 ...

  4. JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内

    /* *JS时间戳比较大小:对于一组时间戳(开始时间~结束时间)和另一组时间戳进行比较,用于判断被比较时间戳组是否在要求范围内 *@param date1 date2(形如:'2015-01-01'类 ...

  5. 用于mask遮罩效果的图片配合resizableImage使用

    用于mask遮罩效果的图片配合resizableImage使用 效果: 作为素材用的图片: 源码: // // ViewController.m // Rect // // Created by Yo ...

  6. 四、dbms_alert(用于生成并传递数据库预警信息)

    1.概述 作用:用于生成并传递数据库预警信息.使用包DBMS_ALERT,则必须以SYS登陆,为该用户授予执行权限.sql>conn sys/oracle as sysdbasql>gra ...

  7. js 获取时间戳 登陆验证码生成要加时间戳

    JavaScript 获取当前时间戳,登陆验证码生成要加时间戳,防止存在session不重新请求第一种方法: var timestamp = Date.parse(new Date()); 结果:12 ...

  8. 图文介绍MyEclipse (2015) 中创建简单的Maven项目的步骤(用于生成可运行jar文件)

    利用MyEclipse的引导,能够非常方便的创建简单的.用于生成可运行jar文件的Maven项目: (原创文章,转载请注明转自Clement-Xu的博客:http://blog.csdn.net/cl ...

  9. 个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列

    啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就 ...

随机推荐

  1. Upgrade to postgresql 9.5

        Add postgresql apt repo.. according to your distribution (utopic, trusty, jessie, wheezy and etc ...

  2. MySQL:unknown variable &#39;master-host=masterIP&#39; [ERROR] Aborting

    <span style="font-size:18px;">120401 15:45:44 [ERROR] C:\Program Files\MySQL\MySQL S ...

  3. 数据结构与算法——AVL树类的C++实现

    关于AVL树的简单介绍能够參考:数据结构与算法--AVL树简单介绍 关于二叉搜索树(也称为二叉查找树)能够參考:数据结构与算法--二叉查找树类的C++实现 AVL-tree是一个"加上了额外 ...

  4. 苦逼IT才能看懂的笑话

    这是苦逼IT才能看懂的笑话1.栈和队列的区别是啥? 吃多了拉就是队列:吃多了吐就是栈 2.世界上最遥远的距离不是生与死,而是你亲手制造的BUG就在你眼前,你却怎么都找不到她... 3.<c++程 ...

  5. django 运行python manage.py sqlall books 时报错 app has migration

    出现这个问题的原因是版本之前的不兼容,我用的django版本是1.8.6 而 这条python manage.py sqlall books 是基于django1.0版本的. 在django1.8.6 ...

  6. hdu 5316 Magician 线段树

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=5316 Magician Time Limit: 18000/9000 MS (Java/Others)  ...

  7. EC知识总结ITE5570

    以笔记本上的EC ITE5570进行讲解  ITE EC代码解析 1.一简介 EC(Embed Controller,嵌入式控制器)是一个16位单片机,它内部本身也有一定容量的Flash来存储EC的代 ...

  8. HSSFWorkbook

    public ActionResult excelPrint() { HSSFWorkbook workbook = new HSSFWorkbook();// 创建一个Excel文件 HSSFShe ...

  9. mysql导入数据库_仅仅用frm向mysql导入表结构

    网上一个连接mysql的jsp代码段,给了数据库的备份文件.可是仅仅有frm, mysql的每张表有三个文件.各自是,*.frm是描写叙述了表的结构.*.MYD保存了表的数据记录.*.MYI则是表的索 ...

  10. MongoDB 操作手冊CRUD 事务 两步提交

    运行两步提交 概述 这部分提供了多记录更新或者多记录事务.使用两步提交来完毕多记录写入的模板. 另外.能够扩展此方法来提供rollback-like功能. 背景 MongoDB对于单条记录的操作是原子 ...