redis = new Redis_Lite(DI()->config->get('app.redis.servers')); $this->model = new Model_DataDaily(); $this->hourly_model = new Model_DataHourly(); } /** * 获取用户某个时间段内的数据 * @param [type] $user_id [description] * @param [type] $start_time [description] * @param [type] $end_time [description] * @return [type] [description] */ public function getUserDataList($user_id, $start_time, $end_time){ $start_time = strtotime($start_time); $end_time = strtotime($end_time); if($end_time > $start_time){ $diff_days = ($end_time - $start_time) / 86400; $total_days = $diff_days + 1;//时间段内总天数 $step = ($total_days - $total_days % 7) / 7; $days_arr= array(); for($i = 0; $i < 7*$step ; $i+=$step){ $days_arr[] = date('Y-m-d', strtotime('+'.$i.' day', $start_time)); } $result = $this->model->getList(array('user_id' => $user_id, 'date' => array('$in' => $days_arr))); } else{ $result = $this->hourly_model->getList(array('user_id' => $user_id, 'date' => $start_time), array(), array('time_level' => 1)); } return $result; } /** * 验证时间 * @param [type] $start_time [description] * @param [type] $end_time [description] * @return [type] [description] */ public function checkTime($start_time, $end_time){ $start_time = strtotime($start_time); $end_time = strtotime($end_time); if($start_time > $end_time){ return false; } $diff_days = ($end_time - $start_time) / 86400; $total_days = $diff_days + 1;//时间段内总天数 if($total_days < 7){ return false; } return true; } }