在我的數據庫中搜索我日期場與標準日期時間爲MySQL (YYYY-MM-DD HH:MM:SS)。槽式AJAX請求我得到這個時間:DD/MM/YYYY笨2.1,MySQL的 - 按日期
這是我寫的搜索槽DB函數:
$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();
目前這個功能是沒有得到任何數據。這裏似乎有什麼錯誤?如何搜索和查找特定日期的所有條目?
在我的數據庫中搜索我日期場與標準日期時間爲MySQL (YYYY-MM-DD HH:MM:SS)。槽式AJAX請求我得到這個時間:DD/MM/YYYY笨2.1,MySQL的 - 按日期
這是我寫的搜索槽DB函數:
$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();
目前這個功能是沒有得到任何數據。這裏似乎有什麼錯誤?如何搜索和查找特定日期的所有條目?
檢查DATE(date)
的格式,因爲它可能類似於YYYY-MM-DD,並且比較總是失敗。
進入phpMyAdmin或類似軟件,然後嘗試使用SELECT DATE(now())
並仔細檢查日期格式。
如果$date
具有像DD/MM/YYY
的格式,則可以通過使用它重新格式化:
$date=date('Y-m-d',strtotime(strtr($date,"/","-")));
從PHP手冊(http://www.php.net/manual/en/function.strtotime.php):在第m
日期/ d/y或通過查看各種組件之間的分隔符,可以消除dmy格式:如果分隔符是斜線(/),則假定爲美式m/d/y;而如果分隔符是破折號( - )或點(。),則假定歐洲的d-m-y格式。
爲了解決美國/歐洲日期歧義問題,我簡單地在字符串到時間轉換之前用「 - 」替換「/」。
使用strtotime
功能轉換的日期到正確的格式:
$date = date('Y-m-d', strtotime($date));
$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array();
請轉換第一發布日期數據庫格式和你這樣的搜索字段與日期功能的使用。
$date = date('Y-m-d', strtotime($search));
$this->db->where('DATE(created)',$date);
這應該作爲評論發佈,而不是作爲答案,因爲它只是調試步驟,而不是問題的解決方案。 – 2013-03-15 17:18:17