這裏的時間是date 我數據庫存的是 時間戳 yii有個between
web頁面就是兩個input框 就不展示了
andWhere和andFilterWhere都可以用來追加條件,只是andFilterWhere會忽略條件中的空值
時間區段搜索需要注意,開始時間不填/結束時間不填情況的搜索
控制器:
$query = OrderDealer::find();
$this->get_search_date($query, 'create_time');
//yii自帶的分頁
$countQuery = clone $query; $pages = new Pagination([ 'totalCount' => $countQuery->count(), 'pageSize' => 10, ]); $order_info = $query->offset($pages->offset)->limit($pages->limit)->orderBy($order)->all();
public function get_search_date($query, $field) { $end_date = strtotime($this->_request->get('end_date')) + 86400 - 1; $start_date = strtotime($this->_request->get('start_date')); if ($end_date && $this->_request->get('end_date')) { $query->andWhere(['between', $field, $start_date, $end_date]); } else if ($start_date) { $query->andWhere(['>=', $field, $start_date]); } else if ($this->_request->get('end_date')) { $query->andWhere(['<=', $field, $end_date]); } }