用于生成交易统计时间戳(常配合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对于单条记录的操作是原子 ...