laravel查询看最近7天的数据做走势图效果

  • 时间:
  • 浏览:
  • 来源:互联网

场景一:统计最近7天的点赞数

        $date_array = array();
        $date_count = array();

        $i = 0;
        while ($i < 7) {
            //echo Carbon::today()->subDays($i)->format('Y-m-d H:i:s');
            array_push($date_array, Carbon::today()->subDays($i)->format('Y-m-d H:i:s'));
            $i++;
        }
        foreach ($date_array as $date) {
            $date_count[] = Zan::where('created_at', '>', $date)->get()->count();
        }

大概得到的效果
在这里插入图片描述
这样就可以到前端进行数据和日期遍历

场景二:类似如下的图

在这里插入图片描述
这个感觉好像不是那么好,需要前端配合处理,得到的数据日期是断断续续的
在这里插入图片描述

主要的方法

    public function getTimingHistory($time)
    {
        $time = (int)$time;
        $data = Article::where('created_at', '<', Carbon::now())
            ->where('created_at', '>', $time > 1 ? Carbon::today()->subDays($time) : Carbon::today())
            ->select([$time > 1 ? DB::raw('DATE(created_at) as time') : DB::raw('DATE_FORMAT(created_at,\'%H\') as time'), DB::raw('COUNT("*") as count')])
            ->groupBy('time')
            ->get();
        return $data;
    }

原文地址

https://segmentfault.com/a/1190000015825085

后续方法…找到了就补充

本文链接http://www.dzjqx.cn/news/show-617280.html