用于生成交易统计时间戳(常配合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催化剂的创立,初衷就 ...
随机推荐
- 关于 AlphaGo 论文的阅读笔记
这是Deepmind 公司在2016年1月28日Nature 杂志发表论文 <Mastering the game of Go with deep neural networks and tre ...
- 两种IO模式:Proactor与Reactor模式
在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作. 在比较这两个模式之前,我们首先的搞明白 ...
- UE-9260使用说明2
生成镜像 1. U-boot 生成u-boot.bin文件 (1) Makefile ifeq ($(ARCH),arm) CROSS_COMPILE = endif 改动为 ifeq ($(ARCH ...
- 在Linux中将php-fpm配置成服务的方法
1.配置php-fpm.conf vi /usr/local/php/etc/php-fpm.conf php-fpm.pid 目录必须指向:/usr/local/php/var/run/php-fp ...
- java 堆和栈一般理解
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同.Java自己主动管理栈和堆.程序猿不能直接地设置栈或堆. Java的堆是一个执行时数据区,类的(对象从中分配空间.这些对象通过new.n ...
- python-pyDes-ECB加密-DES-DES3加密
网上的教程都他妹的是抄的,抄也就算了,还改抄错了,害我写了一两天都没找到原因,直接去官网看,找例子很方便 官网链接:http://twhiteman.netfirms.com/des.html 一个小 ...
- Spring源码学习(一)资源加载
这里先从最简单的一个Spring例子开始. 下面是Spring的context的配置 <?xml version="1.0" encoding="UTF-8&quo ...
- js比较3个数字的大小
<script> var a = [1, 5, 2, 123, 34, 43, 7]; var i = j = t = 0; //sort方法, 推荐使用 a.sort(function( ...
- 获取本地IP V4 出现::1
获取本地IP V4 竟然得到 ::1 和 192.168.x.xxx 多出来一个::1???? 终于在网络找到答案,原来是禁用了IP V6 导致,重新勾选IP V6,或者卸载IP V6 都可以解决问 ...
- [Phoenix] 三、DML语法
摘要: 云HBASE上Phoenix支持的DML语法 从一个或者多个表中查询数据.LIMIT(或者FETCH FIRST) 在ORDER BY子句后将转换为top-N查询. 云HBASE上Phoeni ...