按月统计访客


Count visitors by month

我有一个问题,所以我想建立一个由按日期计数访问者组成的图表;我的数据库中有

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")