利用類的屬性來對時間區間的搜尋

2021-06-06 09:09:24 字數 1587 閱讀 3993

今天工作的時候遇到乙個問題,乙個模組的資料表只存了乙個時間字段 add_time ,但是搜尋是區間的。

這個時候就可以用我的辦法來解決了。這個問題比較常見,故而整理下來。

操作時間 start_time" id="start_time" value="" class="wdate" οnfοcus="wdatepicker()" size="15">

~end_time" id="end_time" value="" class="wdate" οnfοcus="wdatepicker()" size="15">

start_time 和 end_time 是資料庫中沒有的,

add_time 資料庫中儲存的是這個字段

接著需要在model中定義屬性,start_time和end_time,因為需要在search方法中用到

public $starttime;

public $endtime;

在執行搜尋的控制器**處,增加

$model->attributes = $_post['queryparams'];

$_get['page'] = $_post['page'];

$model->starttime = $_post['queryparams']['start_time'];

$model->endtime = $_post['queryparams']['end_time'];

這個時候程式對去找model中的search,在search方法中接著處理

$criteria=new cdbcriteria();

$criteria->compare('order_type',$this->order_type);

$criteria->compare('order_id',$this->order_id);

$criteria->compare('order_sn',$this->order_sn);

$criteria->compare('operator',$this->operator);

$criteria->compare('notes',$this->notes);

$criteria->compare('front_show', $this->front_show);

if($this->endtime)

if($this->starttime)

$criteria->order = 'order_id';

這樣就解決了。

但是這樣並不等於完成了,因為方法原理你明白了?

原理:利用model類中的屬性 start_time和end_time ,在執行這個方法的時候先給他們賦值,在執行search方法的時候再去呼叫賦的值。

對時間的封裝util

將乙個秒數的時間轉成形如00 00 00字串 public static string parsetime string date else else if integer.parseint curday integer.parseint day 2 else else else return da...

SQL 對時間的處理

獲取當前日期 如 yyyy mm dd select datename year,getdate datename month,getdate datename day,getdate 獲取當前日期 如 yyyy mm dd select datename year,getdate datename...

js對時間的操作

獲取當前時間 var mydate new date 獲取時間中的年月日時分秒 mydate.getyear 獲取當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 mydate.getdate 獲...