按日期进行分组
//统计七天内注册用户数量按天进行分组$ur = db::table('urs')->wherebetween('created_at',['2018-01-01','2018-01-07']) ->lectraw('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} #在进行图表统计的时候直接从数据库取得数据有些日期可能是没有的,就需要我们手动进行补全一些日期#计算日期内天数$stimestamp = strtotime($start_time);$etimestamp = strtotime($end_time);#计算日期段内有多少天$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 ($ur as $item => $value){ if($val == $value['date']){ $data[$key] = $value; } }}return $data;
按月份进行分组
#统计一年内注册用户数量按月份进行分组$ur = db::table('urs')->wherebetween('created_at',['2018-01-01','2018-12-31']) ->lectraw('date_format(created_at,"%y-%m") as date,count(*) as value') ->groupby('date')->get();#获取的用户分组数据{ "d西北师大附中鸿宇班ate": "2018-01", #月份 "value": 1497 #数量},{ "date": "2018-02", "value":尤惟 2354},{ "date": "2018-03", "value": 4560} #在进行图表统计的时候直接从数据库取得的数据有的月份可能是没有的,不过月份比较少可直接写死,同样也需要补全$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 ($ur as $item => $value){ if($val == $value['date']){ $data[$key] = $value; } }}return $data;
laravel实现各时间段数量统计、方便直接使用
因项目中用到了图表之类的信息,需要获取到很多时间的数据动态,刚开始我都是自己换算时间来计算,后来 看到手册中有更简单的方法,自己总结了一下通用的时间段统计(今天、昨天、上周、本周、上月、本月、上年、本年)。
u 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(); // 上周数据 $last_week = [carbon::now()->startofweek()->subweek(), c步步惊心歌arbon::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;}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对www.887551.com的支持。
本文发布于:2023-04-07 11:16:00,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8a4b8563976d6a3b93c8223fb50c3b54.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:laravel实现按时间日期进行分组统计方法示例.doc
本文 PDF 下载地址:laravel实现按时间日期进行分组统计方法示例.pdf
留言与评论(共有 0 条评论) |