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)asdate'),DB::raw('COUNT(*)asvalue')])
->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\')asday'),
DB::raw('COUNT(*)asvalue')])
->toArray()
分享一个时间选择插件
这是官网地址
我把我改好的代码附上:
$(function(){
/*设置开始结束时间*/
varstart=moment().subtract(30,'days');
varend=moment().subtract(-1,'day');
vardatas={};
/*选择之后,将时间重新赋值input*/
functioncb(start,end){
$('#reportrangespan').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按天、按小时,查询数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。