当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel按天、按小时,查询数据的实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-28 19:54:04 浏览: 评论:0 

今天小编就为大家分享一篇laravel按天、按小时,查询数据的实例,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧

使用laravel做后台数据统计的时候,需要查询每天的注册量之类的数据

这时候如果直接用created_at分组,是不好用的。

1、所以本文解决这个查询应该怎么写。

2、并且推荐一个时间选择插件,因为统计中一定会用到,本周数据、本月、本季度、上个月。

按天分组数据:

  1. Event::where('created_at','>',Carbon::parse($request->start_date)) 
  2. ->where('created_at','<',Carbon::parse($request->end_date)) 
  3. //两个where限制开始结束时间 
  4. ->groupBy('date'
  5. ->get([DB::raw('DATE(created_at) as date'),DB::raw('COUNT(*) as value')]) 
  6. ->toArray(); 

如果想按小时分组所有查询出来的数据:

  1. Event::where('created_at','>',Carbon::parse('2017-01-01')) 
  2. ->where('created_at','<',Carbon::parse('2017-11-09')) 
  3. ->groupBy('day'
  4. ->get([ 
  5. //通过date_format()来格式化created_at字段 
  6.  DB::raw('DATE_FORMAT(created_at,\'%H\') as day'), 
  7.  DB::raw('COUNT(*) as value')]) 
  8. ->toArray() 

分享一个时间选择插件

这是官网地址

我把我改好的代码附上:

  1. $(function () { 
  2. /*设置开始结束时间*/ 
  3.  var start = moment().subtract(30, 'days'); 
  4.  var end = moment().subtract(-1,'day'); 
  5.  var datas = {}; 
  6. /*选择之后,将时间重新赋值input*/ 
  7.  function cb(start, end) { 
  8.   $('#reportrange span').html(start.format('YYYY/MM/DD') + ' - ' + end.format('YYYY/MM/DD')); 
  9.  } 
  10.  $('#reportrange').daterangepicker({ 
  11.  startDate: start, 
  12.  endDate: end
  13.  /*本地化数据*/ 
  14.  locale: { 
  15.   "format""YYYY/MM/DD"
  16.   "separator"" - "
  17.   "applyLabel""应用"
  18.   "cancelLabel""关闭"
  19.   "fromLabel""From"
  20.   "toLabel""至"
  21.   "customRangeLabel""自定义"
  22.   "weekLabel""W"
  23.   "daysOfWeek": ["Su""Mo""Tu""We""Th""Fr""Sa" 
  24.   ], 
  25.   "monthNames": ["一月""二月""三月""四月""五月""六月""七月""八月""九月""十月""十一月""十二月" 
  26.   ], 
  27.   "firstDay": 1 
  28.  }, 
  29.  ranges: { 
  30.   '今天': [moment(), moment().subtract(-1, 'days')], 
  31.   '昨天': [moment().subtract(1, 'days'), moment()], 
  32.   '前7天': [moment().subtract(7, 'days'), moment()], 
  33.   '前30天': [moment().subtract(30, 'days'), moment()], 
  34.   '本月': [moment().startOf('month'), moment().endOf('month').subtract(-1,'day')], 
  35.   '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month').subtract(-1,'day')], 
  36.   '所有': [moment("2017-09-25"), moment().subtract(-1, 'days')] 
  37.  } 
  38. }, cb); 
  39.  
  40.  cb(start, end); 
  41. }); 

超级好用,结合echart

在用echart的map时候,因为地图权限没有,所以要加载百度地图,这个坑另开帖子记录吧。

Tags: laravel按天查询 laravel按小时

分享到: