我有一個PHP腳本,應該在每個讓我們說15分鐘後刪除數據庫中的數據。找到當前時間和時間戳字段之間的差異
現在在數據庫表中,我有一個字段時間戳,每次修改字段時都會存儲當前時間戳。
每隔15分鐘我想檢查當前時間和存儲在時間戳記字段中的值之間的差異。
我試圖if((time()-$row['timestamp'])>900)
//(900秒)
這AINT工作,因爲時間戳字段還存儲與當前時間以及日期。 我該如何繼續
我有一個PHP腳本,應該在每個讓我們說15分鐘後刪除數據庫中的數據。找到當前時間和時間戳字段之間的差異
現在在數據庫表中,我有一個字段時間戳,每次修改字段時都會存儲當前時間戳。
每隔15分鐘我想檢查當前時間和存儲在時間戳記字段中的值之間的差異。
我試圖if((time()-$row['timestamp'])>900)
//(900秒)
這AINT工作,因爲時間戳字段還存儲與當前時間以及日期。 我該如何繼續
如果存放時間與MySQL TIMESTAMP
數據類型,那麼最好的辦法是使用在TIMESTAMP
數據上運行的MySQL函數。 TIMESTAMPDIFF()
將非常合適,因爲它也允許爲結果定義單位。
SELECT TIMESTAMPDIFF(MINUTE, `my_timestamp_column`, NOW()) FROM `my_table`
將返回因爲my_timestamp_column
值開始已經經過的分鐘數(整數)。用要麼是PHP腳本的cron或者乾脆合併將其與網頁上的每個請求,要實現的目標:
DELETE FROM `my_table`
WHERE TIMESTAMPDIFF(MINUTE, `my_timestamp_column`, NOW()) > 15
此外,您可能需要閱讀本手冊的Date and Time Functions內容有一些其他的解決方案。
這將是最容易完全處理這個使用數據庫。使用CURR_TIME獲得當前的時間戳,然後使用TIMEDIFF()來生成條件
你剛纔提到,$row['timestamp']
存儲與datetime
format.So值將其轉換爲時間戳,使用strtotime()
功能。所以,現在你的代碼將是
if((time()-strtotime($row['timestamp']))>900) //(900 is the seconds)
我希望這有助於
可以使用SQL也做到這一點:
DELETE FROM `table` WHERE `timestamp` < UNIX_TIMESTAMP() - 60 * 15
實際上'time()'會返回當前的時間戳,所以它應該和你的'timestamp'字段相匹配。 – flowfree
請使用搜索功能。如何在PHP和/或MySql中比較時間已被問及回答了上百次,[我們要求你做家庭作業](http://stackoverflow.com/questions/ask-advice)是有原因的。 – Gordon