我有一个问题,所以我想建立一个由按日期计数访问者组成的图表;我的数据库中有
id created_at
1 2014-11-09
2 2014-11-10
3 2014-11-08
4 2014-10-01
5 2014-10-05
所以我想得到
3 november
2 octomber
我想在Laravel中构建,我的代码是:
$aVisitors = $oVisitor::select([
DB::raw('DATE(created_at) AS date'),
DB::raw('COUNT(id) AS count'),
])
->groupBy('date')
->orderBy('date', 'ASC')
->get();
请帮我。提前Thx
您可以在这里使用:
$aVisitors = $oVisitor::select([
DB::raw("DATE_FORMAT(created_at, '%Y-%m') AS `date`"),
DB::raw('COUNT(id) AS count'),
])
->groupBy('date')
->orderBy('date', 'ASC')
->get();
这会给你这样的东西:
2014-07 1
2014-08 1
2014-09 1
2014-10 5
使用下一个
GROUP BY DATE_FORMAT(created_at, '%Y-%d')
或者这个
GROUP BY YEAR(created_at), MONTH(created_at)
在你的laravel代码中,它应该是类似于这个的东西
->groupBy('YEAR(created_at), MONTH(created_at)')
也可以直接从mysql 中获取月份名称
DB::raw("DATE_FORMAT(created_at, '%M') as monthName")