request->get(); $begin_datetime = $params['begin_datetime']; $end_datetime = $params['end_datetime']; $type = $params['type']; $code = $params['code']; if ($begin_datetime == '') { $begin_datetime = date('Y-m-01 00:00:00'); $end_datetime = date('Y-m-t H:i:s'); } $where = []; if ($type != '') { $where['type'] = $type; } if ($code != '') { $where['code'] = $code; } $result = model('click_sum')->field('year(create_time) y, month(create_time) m, day(create_time) d, count(id) click_count')->group('year(create_time), month(create_time), day(create_time)')->whereTime('create_time', 'between', [$begin_datetime, $end_datetime])->where($where)->select(); // tiaoshi($result);die; $tmp_click_sum = []; foreach ($result as $key => $value) { $k = $value['m'] . '-' . $value['d']; $v = $value['click_count']; $tmp_click_sum[$k] = $v; } $begin_time = strtotime($begin_datetime); $end_time = strtotime($end_datetime); $click_sum = []; $j = 0; for($i=$begin_time;$i<=$end_time;$i+=86400) { $k = $this->filter_date(date('m-d', $i)); $click_sum[$j]['date'] = $k; $click_sum[$j]['click_count'] = isset($tmp_click_sum[$k]) ? $tmp_click_sum[$k] : 0; $j++; } $data = [ 'click_sum' => $click_sum, ]; return $this->json(200, 'ok', $data); } // 06-09 -> 6-9 private function filter_date($date) { $m = substr($date, 0, strpos($date, "-")); $d = substr($date, strpos($date, "-") + 1); if (substr($m, 0, 1) == 0) { $m = substr($m, 1); } if (substr($d, 0, 1) == 0) { $d = substr($d, 1); } return $m . '-' . $d; } }