<sup id="sjju3"><noscript id="sjju3"></noscript></sup>
    <big id="sjju3"></big>

  • <blockquote id="sjju3"></blockquote>
    <blockquote id="sjju3"></blockquote>

      <td id="sjju3"></td>

      <big id="sjju3"></big>
        <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>
      1. laravel实现按时间日期进行分组统计方法示例

         更新时间:2019年03月23日 14:45:35   作者:王羽落   我要评论

        这篇文章主要给大家介绍了关于laravel如何实现按时间日期进行分组统计的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用laravel具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

        按日期进行分组

        //统计七天内注册用户数量按天进行分组
        $user = DB::table('users')->whereBetween('created_at',['2018-01-01','2018-01-07'])
         ->selectRaw('date(created_at) as date,count(*) as value')
         ->groupBy('date')->get();
        
        #获取的用户分组数据
        {
         "date": "2018-01-01", #日期
         "value": 199  #数量
        {
         "date": "2018-01-02",
         "value": 298
        },
        {
         "date": "2018-01-03",
         "value": 1000
        }
         
        #在进行图表统计的时候直接从数据库取得数据?#34892;?#26085;期可能是没有的,就需要我们手动进行补全一些日期
        #计算日期内天数
        $stimestamp = strtotime($start_time);
        $etimestamp = strtotime($end_time);
        #计算日期?#25991;?#26377;多少天
        $days = ($etimestamp - $stimestamp) / 86400;
        #保存每天日期
        $date = array();
        for($i = 0;$i < $days;$i++){
         $date[] = date('Y-m-d', $stimestamp + (86400 * $i));
        }
        #循环补全日期
        foreach ($date as $key => $val){
         $data[$key] = [
         'date' => $val,
         'value' => 0
         ];
         foreach ($user as $item => $value){
         if($val == $value['date']){
          $data[$key] = $value;
         }
         }
        }
        return $data;

        按月份进行分组

        #统计一年内注册用户数量按月份进行分组
        $user = DB::table('users')->whereBetween('created_at',['2018-01-01','2018-12-31'])
         ->selectRaw('DATE_FORMAT(created_at,"%Y-%m") as date,COUNT(*) as value')
         ->groupBy('date')->get();
        #获取的用户分组数据
        {
         "date": "2018-01", #月份
         "value": 1497  #数量
        },
        {
         "date": "2018-02",
         "value": 2354
        },
        {
         "date": "2018-03",
         "value": 4560
        } 
        #在进行图表统计的时候直接从数据库取得的数据有的月份可能是没有的,不过月份比较少可直?#26377;?#27515;,同样也需要补全
        $year = date('Y',time());
        #一年的月份
        $month = [
         0 => $year.'-01',
         1 => $year.'-02',
         2 => $year.'-03',
         3 => $year.'-04',
         4 => $year.'-05',
         5 => $year.'-06',
         6 => $year.'-07',
         7 => $year.'-08',
         8 => $year.'-09',
         9 => $year.'-10',
         10 => $year.'-11',
         11 => $year.'-12',
        ];
        #循环补全月份
        foreach ($month as $key => $val){
         $data[$key] = [
         'date' => $val,
         'value' => 0
         ];
         foreach ($user as $item => $value){
         if($val == $value['date']){
          $data[$key] = $value;
         }
         }
        }
        return $data;

        laravel实现各时间段数量统计、方便直接使用

        因项目中用到了图表之类的信息,需要获取到很多时间的数据动态,刚开始我都是自己换算时间来计算,后来 看到手册中有更简单的方法,自己总结了一下通用的时间段统计(今天、昨天、?#29616;堋?#26412;周、上月、本月、上年、本年)。

        use Carbon\Carbon;
         
        public function getNumber()
        {
          $data = [];
        
          #今天数据
          $data['customer_today'] = Customer::where('customer_type', 1)->where('created_at', Carbon::today())->count();
          #昨天数据
          $data['customer_yesterday'] = Customer::where('customer_type', 1)->where('created_at', Carbon::yesterday())->count();
        
          // 本周数据
          $this_week = [Carbon::now()->startOfWeek(), Carbon::now()->endOfWeek()];
          $data['customer_this_week'] = Customer::where('customer_type', 1)->whereBetween('created_at', $this_week)->count();
        
          // ?#29616;?#25968;据
          $last_week = [Carbon::now()->startOfWeek()->subWeek(), Carbon::now()->endOfWeek()->subWeek()];
          $data['customer_last_week'] = Customer::where('customer_type', 1)->whereBetween('created_at', $last_week)->count();
        
          // 本月数据
          $data['customer_this_month'] = Customer::where('customer_type', 1)->whereMonth('created_at', Carbon::now()->month)->count();
        
          // 上月数据
          $data['customer_last_month'] = Customer::where('customer_type', 1)->whereMonth('created_at', Carbon::now()->subMonth()->month)->count();
        
          // 本年数据
          $data['customer_this_year'] = Customer::where('customer_type', 1)->whereYear('created_at', Carbon::now()->year)->count();
        
          
          return $data;
        }

        总结

        以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

        相关文章

        最新评论

        2018白小姐一肖中特马
        <sup id="sjju3"><noscript id="sjju3"></noscript></sup>
        <big id="sjju3"></big>

      2. <blockquote id="sjju3"></blockquote>
        <blockquote id="sjju3"></blockquote>

          <td id="sjju3"></td>

          <big id="sjju3"></big>
            <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>
          1. <sup id="sjju3"><noscript id="sjju3"></noscript></sup>
            <big id="sjju3"></big>

          2. <blockquote id="sjju3"></blockquote>
            <blockquote id="sjju3"></blockquote>

              <td id="sjju3"></td>

              <big id="sjju3"></big>
                <code id="sjju3"><strong id="sjju3"><dl id="sjju3"></dl></strong></code>