title('该时间内注册'); #日期选择开始 $id = $this->id(); $this->datepicker($id) ->click("#{$id} .datepicker .btn-primary") ->addVariables([ 'datepicker' => [ 'start' => date('Y-m-d', strtotime('-7 days')), 'end' => date('Y-m-d', time()), ] ]); #日期选择结束 } /** * 处理请求 * * @param Request $request * * @return mixed|void */ public function handle(Request $request) { $start = $request->get('started'); $end = $request->get('ended'); if(empty($start) && empty($end)){ $start = date("Y-m-d 00:00:00", strtotime('-7 days')); $end = date("Y-m-d 23:59:59", time()); //取出今日注册量 $todayNum = UsersMember::query()->whereBetween("create_time", [strtotime($start), strtotime($end)])->count(); $this->withContent($todayNum.'人'); $chart = []; $dayCount = getDateRange($start, $end); foreach($dayCount as $item){ $thisDayCount = UsersMember::query()->whereBetween("create_time", [strtotime($item." 00:00:00"), strtotime($item." 23:59:59")])->count(); $chart[] = $thisDayCount; } $this->withChart($chart); }else{ //指定时间段内注册量 $start = $start." 00:00:00"; $end = $end." 23:59:59"; $num = UsersMember::query()->whereBetween("create_time", [strtotime($start), strtotime($end)])->count(); $this->withContent($num."人"); $chart = []; $dayCount = getDateRange($start, $end); foreach($dayCount as $item){ $thisDayCount = UsersMember::query()->whereBetween("create_time", [strtotime($item." 00:00:00"), strtotime($item." 23:59:59")])->count(); $chart[] = $thisDayCount; } $this->withChart($chart); } } /** * 设置图表数据. * * @param array $data * * @return $this */ public function withChart(array $data) { return $this->chart([ 'series' => [ [ 'name' => $this->title, 'data' => $data, ], ], ]); } /** * 设置卡片内容. * * @param string $content * * @return $this */ public function withContent($content) { return $this->content( <<