我的數據庫中有一張表,用於存儲用戶輸入作爲開始日期和結束日期之後,我的用戶將不得不選擇一個時間範圍,並且必須在表中顯示那些記錄在這個時間範圍內?在PHP中的時間日期比較
嘗試stritotime();
等諸多unctions但不知何故,我不能得到正確的結果..
任何可能的解決方案,將不勝感激。
謝謝!
我的數據庫中有一張表,用於存儲用戶輸入作爲開始日期和結束日期之後,我的用戶將不得不選擇一個時間範圍,並且必須在表中顯示那些記錄在這個時間範圍內?在PHP中的時間日期比較
嘗試stritotime();
等諸多unctions但不知何故,我不能得到正確的結果..
任何可能的解決方案,將不勝感激。
謝謝!
可能有:
SELECT count(*) FROM `table`
where
created_at>='2011-03-17 06:42:10' and created_at<='2011-03-17 06:42:50';
或使用之間:這取決於
SELECT count(*) FROM `table`
where
created_at between '2011-03-17 06:42:10' and '2011-03-17 06:42:50';
在你的記錄上你想要展示什麼,因爲我沒有看到你的表格,並且例證了你真的要做什麼,所以只需要改變count(*)並獲得你所記錄的記錄螞蟻。
編輯: 如果用戶將選擇一個時間範圍,然後他們將變量
那麼這將是類似的東西
SELECT records FROM `table`
where
created_at >= '".$var_start_time."' and ended_at <= '".$var_end_time."';
你可以在MySQL查詢使用...和...之間比較討論運營商 http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between
我沒有使用MYSQL來爲(開始/結束)日期在文本中使用用戶輸入分配日期,如下所示:** 2012年12月12日**並且必須將它與'date(「d/m/Y「);' –
你可以簡單地做到這一點在你的SQL,這是推薦的方法。例如,如果您將這些開始和結束時間存儲在數據庫表中作爲本機DateTime類型,則可以使用DBMS的日期函數將範圍選擇爲UNIX時間戳(如果這是您想要的)。
SELECT UNIX_TIMESTAMP(`start_time`), UNIX_TIMESTAMP(`end_time`) FROM `table` WHERE `start_time` > INTERVAL -1 DAY AND `end_time` < NOW();
這是一個例子(假設你使用MySQL),您選擇表中的所有行的列start_time
是在過去的24小時內與end_time
列到當前服務器時間。
要獲得格式化的日期,然後做轉換到UNIX時間戳在PHP中使用:
SELECT `start_time`, `end_time` FROM `table` WHERE `start_time` > INTERVAL -1 DAY AND `end_time` < NOW();
,然後在PHP中,你可以這樣做:
$result['start_time'] = strtotime($result['start_time']);
$result['end_time'] = strtotime($result['end_time']);
請記住, strtotime期望格式化日期符合PHP's date parsing rules found here。
P.S:你正在尋找的PHP函數是strtotime不是stritotime。
看到我上面的評論,謝謝 –
看到我現在編輯 –
當我更好地看看它,我可以理解的過程..我有壞的觀點..我試圖讓比較PHP方面沒有在MySQL –