用於生成交易統計時間戳(常配合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; } 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM