宝哥软件园

laravel按月、日或小时计算mysql数据的方法

编辑:宝哥软件园 来源:互联网 时间:2021-08-19

在PHP中,我们如何简单地按时间(如月、日、小时)统计统计表中的数据?

例如,如果:想要获得下图中的图形数据(ps:也可以是直方图等。而且数据都是一样的),它会默认在七天内获取数据。点击今天、7天、15天、30天随意切换,其中今天按小时计算。

但是,我的实现方法有一个小缺点。当一个小时内没有数据时,该小时将不会出现,但这应该通过前端表单来补救

好了,别废话了,上面的代码!

1.控制器内容

/** * [getsellerdata获取一定时间段内的商户结算查询数据]* @ param Request $ Request[description]start :开始时间end:结束时间* @ return[type][description]*/public函数getSellerQuData(Request $ Request){ $ data=$ this-data analysis-getSellerQuData($ Request-start,$ Request-end);返回$数据;}2.库文件的内容

/** * [getSellerQuData获取商户结算的数据曲线]* @ param[string]$start[start time]2017-08 * @ param[string]$ end[end time]* @ return[type][description]*/Public函数getsellerqudata ($ name,$ start,$ end){//计算时间差确定格式化时间格式$ diff=strtime($ end)-strtime($ start);//分组条件:1天内按小时分组,否则按天/月分组//86400/1天,2678400/1月,if($ diff 86400 $ diff 0){ $ sort=' % H ';} else if($ diff 2678400){ $ sort=' % Y-% m-% d ';} else { $ sort=' % Y-% m ';}//数据添加时间根据格式化时间分组求和。求和有两种,一种是直接求和。一个是满足条件时的数据总和:$ query=db :3360 table(' user _ retracts as w ')-选择(db :3360 raw(' from _ UNIX time(created _ at ',{$ sort} ')作为数据。w.cash _ type=1然后w.money end时的情况)为毕夏,w.cash _ type=2然后w.money end时的情况)为在线,sum(w.money)为all ')-group by(db : raw(' FROM _ UNIXTIME(created _ at,{ $ sort } ')')))));//条件筛选器if(!empty($ start)){ $ query-WHereRaw(' w . created _ at=?',strtotime($ start));} if(!empty($ end)){ $ query-WHereRaw(' w . created _ at=?',strtotime($ end));} $ data=$ query-get();返回$数据;}以上按月、日、小时统计mysql数据的laravel方法是边肖分享的全部内容。希望能给大家一个参考,支持我们。

更多资讯
游戏推荐
更多+