<?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. vue2.0 + vux 项目搭建

    1.快速搭建项目模板 因为项目使用vux,所以推荐使用vux官网的airyland/vux2 模板,vue-cli工具是vue项目的搭建脚手架 默认为 webpack2 模板,如果你需要使用webpa ...

  2. d3js 添加数据

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  3. 【足迹C++primer】39、动态内存与智能指针(3)

    动态内存与智能指针(3) /** * 功能:动态内存与智能指针 * 时间:2014年7月8日15:33:58 * 作者:cutter_point */ #include<iostream> ...

  4. 基于multiprocessing和threading实现非阻塞的GUI界面显示

    ========================================================= 环境:python2.7.pyqt4.eric16.11 热点:multiproce ...

  5. C# 通过Hook的方法 屏蔽快捷键

     #region 屏蔽Windows功能键(快捷键)         public delegate int HookProc(int nCode, int wParam, IntPtr lParam ...

  6. IOS AFNETWORKING POST

    IOS AFNETWORKING POST 请求 #pragma mark post 请求 // 获取 url 路劲,不带参数 NSString *requestUrl = [[url compone ...

  7. Attempting to write a row[5] in the range [0,394] that is already written to disk.

    我用POI操作excel写数据,然后就报这个错了 XSSFWorkbook workbook = new XSSFWorkbook(); SXSSFWorkbook sxssfWorkbook = n ...

  8. 深入Garbage First垃圾收集器(三)G1中的垃圾收集

    G1 GC在收集暂停的过程中会回收绝大部分堆分区,唯一的例外是多级并发标记期间的清除阶段. 在清除阶段,如果G1遇到仅仅只存放了垃圾的分区,它就会立刻收集这些分区并将它们放回空闲分区列表中,因此这些分 ...

  9. java 内部类(转)

    原文: http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html 内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 ...

  10. STM32 CAN通信

    最近在STM32上开发CAN通信相关内容,转载一篇个人认为不错的文章,看完了基本算明白了,能够实际操作了. 原文地址:  https://blog.csdn.net/ludaoyi88/article ...