1. 程式人生 > 實用技巧 >laravel按天、按小時,查詢資料的例項

laravel按天、按小時,查詢資料的例項

使用laravel做後臺資料統計的時候,需要查詢每天的註冊量之類的資料

這時候如果直接用created_at分組,是不好用的。

1、所以本文解決這個查詢應該怎麼寫。

2、並且推薦一個時間選擇外掛,因為統計中一定會用到,本週資料、本月、本季度、上個月。。。。

按天分組資料:

Event::where('created_at','>',Carbon::parse($request->start_date))
->where('created_at','<',Carbon::parse($request->end_date))
//兩個where限制開始結束時間
->groupBy('date')
->get([DB::raw('DATE(created_at) as date'),DB::raw('COUNT(*) as value')])
->toArray();

如果想按小時分組所有查詢出來的資料:

Event::where('created_at','>',Carbon::parse('2017-01-01'))
->where('created_at','<',Carbon::parse('2017-11-09'))
->groupBy('day')
->get([
//通過date_format()來格式化created_at欄位
 DB::raw('DATE_FORMAT(created_at,\'%H\') as day'),
 DB::raw('COUNT(*) as value')])
->toArray()

分享一個時間選擇外掛

這是官網地址

我把我改好的程式碼附上:

$(function () {
/*設定開始結束時間*/
 var start = moment().subtract(30, 'days');
 var end = moment().subtract(-1,'day');
 var datas = {};
/*選擇之後,將時間重新賦值input*/
 function cb(start, end) {
  $('#reportrange span').html(start.format('YYYY/MM/DD') + ' - ' + end.format('YYYY/MM/DD'));
 }
 $('#reportrange').daterangepicker({
 startDate: start,
 endDate: end,
 /*本地化資料*/
 locale: {
  "format": "YYYY/MM/DD",
  "separator": " - ",
  "applyLabel": "應用",
  "cancelLabel": "關閉",
  "fromLabel": "From",
  "toLabel": "至",
  "customRangeLabel": "自定義",
  "weekLabel": "W",
  "daysOfWeek": ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"
  ],
  "monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
  ],
  "firstDay": 1
 },
 ranges: {
  '今天': [moment(), moment().subtract(-1, 'days')],
  '昨天': [moment().subtract(1, 'days'), moment()],
  '前7天': [moment().subtract(7, 'days'), moment()],
  '前30天': [moment().subtract(30, 'days'), moment()],
  '本月': [moment().startOf('month'), moment().endOf('month').subtract(-1,'day')],
  '上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month').subtract(-1,'day')],
  '所有': [moment("2017-09-25"), moment().subtract(-1, 'days')]
 }
}, cb);

 cb(start, end);
});

超級好用,結合echart

在用echart的map時候,因為地圖許可權沒有,所以要載入百度地圖。這個坑另開帖子記錄吧。

以上這篇laravel按天、按小時,查詢資料的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援碼農教程。