用于生成交易统计时间戳(常配合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催化剂的创立,初衷就 ...
随机推荐
- vue2.0 自定义 饼状图 (Echarts)组件
1.自定义 图表 组件 Echarts.vue <!-- 自定义 echart 组件 --> <template> <div> <!-- echart表格 ...
- PJSIP 调用的GUID库
PJSIP库产生随机序列串用到GUID库,针对不同的平台使用的方式不同:Windows平台下使用的是Windows系统API CoCreateGuid,在方法 pj_generate_unique_s ...
- GCJ Qualification Round 2016 C题
题意是给定了一个叫“jamcoin”的定义,让你生成足够数量满足条件的jamcoin. jamcoin其实就可以理解成一个二进制整数,题目要求的要么长度为16位,要么为32位,一头一尾两个位必须是1, ...
- You're trying to decode an invalid JSON String JSON返回有解析问题
SpringMVC架构的web程序,通常用map返回消息在浏览器中显示,但是实际中报下列错误“”You're trying to decode an invalid JSON String“返回的字符 ...
- jquery 备忘笔记
1.选择器 a.查询所有以某字符串开头的元素 $("input[id^='dgItem_txt']") b.获取一组单选按钮中选中的值 $("input[name='it ...
- Cocos2d-JS开发中的一些小技巧
1.获取URL中的请求参数的值----此方法接收参数名 function getQueryString(name) { var reg = new RegExp("(^|&)&quo ...
- 组件的详细说明和生命周期ComponentSpecs and Lifecycle
render ReactComponent render() render() 方法是必须的. 当调用的时候,会检测 this.props 和 this.state,返回一个单子级组件.该子级组件可以 ...
- Android笔记之Snackbar的基本使用
使用Snackbar之前,须导入com.android.support:design 使用示例 package com.bu_ish.snackbar_test; import android.gra ...
- Learning Scrapy 中文版翻译 第二章
为了从网页中提取信息,你有必要对网页的结构做一些了解.我们将快速学习HMTL,HTML数状结构以及用XPath在网页上提取信息 HTML, DOM树结构以及XPath 让我们花一点时间来了解当用户在浏 ...
- ftp上传文件不能上传到指定的文件夹
首先是,使用ftp创建连接,这一点没有错误,但是在切换目录创建文件夹的时候出现了问题. 指定创建的文件夹,总是创建失败,切换目录同样失败.最后查看文件夹的权限才知道,没有权限的问题: 然后给img文件 ...