Laravel 5.1访客计数器不计入正确的访问量

时间:2016-08-13 17:26:31

标签: php laravel-5.1

我有一个自制的访问者计数器(有点)我正在使用pragmarx插件,但我自己获取数据。

所以我有一张图表,看起来像这样: chart

当我计算一天中的所有内容时,没有问题,它会返回正确的值。但是当我试图获得每周,每月或每年的访问次数时,它会返回完全错误的数字。

这就是我获取图表的方式:

public function getVisitors()
    {
        $begin = Carbon::now()->startOfMonth();
        $end = Carbon::now()->endOfMonth();

        $stats = DB::table('tracker_sessions')
            ->whereRaw("created_at between '$begin' and '$end'")
            ->where('is_robot', '=', 0)
            ->groupBy(DB::raw('DATE_FORMAT(created_at,"%d-%m-%Y")'))
            ->orderBy(DB::raw('DATE_FORMAT(created_at,"%d-%m-%Y")'))
            ->get([
            DB::raw('DATE_FORMAT(created_at,"%d-%m-%Y") as y'),
            DB::raw('COUNT(DISTINCT client_ip) as b')
          ]
        );

          return $stats;
    }

这就是我每周得到的所有内容:

public static function getVisitorsThisWeek()
    {
        $begin = Carbon::now()->startOfWeek();
        $end = Carbon::now()->endOfWeek();

        $stats = DB::table('tracker_sessions')
            ->whereRaw("created_at between '$begin' and '$end'")
            ->where('is_robot', '=', 0)
            ->count(DB::raw('DISTINCT client_ip'));

        return $stats;
    }

我在月份和年份都这样做,除非我将Carbon::now()->startOfWeek();更改为YearMonth类型的碳。

我真的不知道我现在做错了什么?我已经尝试添加groupByorderBy,或者切换它们等等,但注意似乎有效。希望有人可以帮助我解决这个问题。

0 个答案:

没有答案