<?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; }