2013-03-15 68 views
0

在我的數據庫中搜索我日期場與標準日期時間爲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(); 

目前這個功能是沒有得到任何數據。這裏似乎有什麼錯誤?如何搜索和查找特定日期的所有條目?

回答

-1

檢查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格式。

爲了解決美國/歐洲日期歧義問題,我簡單地在字符串到時間轉換之前用「 - 」替換「/」。

+0

這應該作爲評論發佈,而不是作爲答案,因爲它只是調試步驟,而不是問題的解決方案。 – 2013-03-15 17:18:17

3

使用strtotime功能轉換的日期到正確的格式:

$date = date('Y-m-d', strtotime($date)); 
$this->db->get_where('tvprogram', array('DATE(date)' => $date))->result_array(); 
+0

你的意思是'$ date = date('Y-m-d',strtotime($ date));'或者MySQL是否足夠聰明去除時間戳的時間部分? – 2013-03-15 17:18:25

+0

您的功能正在工作,但我需要刪除** H:i:s **部分。謝謝你的幫助:) – Sasha 2013-03-15 17:36:22

+0

oops !!!是的...忘了那個..:)..(以爲我在比較其他日期在PHP ...該死!!!!我現在必須去喝咖啡:) :) ..)更新...反正很高興它幫助..歡迎和快樂的編碼... :) – bipen 2013-03-15 17:42:53

0

請轉換第一發布日期數據庫格式和你這樣的搜索字段與日期功能的使用。

$date = date('Y-m-d', strtotime($search)); 
$this->db->where('DATE(created)',$date);