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

本文介绍了在 Laravel 中进行后台数据统计时如何按天、按小时查询注册量。通过使用 Carbon 和 DB::raw() 函数,可以实现按日期和时间分组的数据查询。同时,推荐了一个时间选择插件,该插件支持多种时间范围选择,如本周、本月、上个月等,并提供了完整的 JavaScript 代码示例。在前端展示方面,该插件能很好地配合 ECharts 进行数据可视化。

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

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

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

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

按天分组数据:

Event::where('created_at','>',Carbon::parse($request->start_date))

->where('created_at','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','

->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按天、按小时,查询数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值