2013-04-07 48 views
0

嗨大家我堅持這一點:我想擦除過去數據庫上的記錄。我只是想考慮月和日。例如,如果數據庫記錄是(這是如何格式化數據庫)「2013年4月5日」我需要將它與今天的日期「2013年4月6日」進行比較。在這種情況下,該記錄被刪除。我看過使用UNIX時間戳的例子,但沒有一個使用date('M j Y')的格式。謝謝!當數據庫上的日期格式是「2013年4月5日」時比較PHP上的兩個日期

回答

0

在數據庫中存儲日期的更好方法是使用DATE或DATETIME格式。 SQL允許您從這些類型獲取所需的所有信息。但是這樣的請求應該起作用。

你可能最終與正則表達式做到這一點,但它會很沉重......

但你可以做到這一點在PHP中,讓所有的結果,那麼他們瀏覽和使用類似strtotime比較日期時,然後刪除每個ID。仍然很重,但比在SQL請求中更容易實現。但是如果你能改變SQL體系結構,它仍然會更好。

0

我想嘗試的方法是使用strtotime()將英文文本字符串轉換爲unix時間戳,然後將新時間戳與當前日期進行比較。這裏有一些描述這種方法的php僞代碼。

$threshold_to_deletion = numbers of days old a record is allowed to be; 
$is_it_yesterday = 0; 
$current_date = new DateTime(); 
$current_date->getTimestamp(); 

if (!($is_it_yesterday = strtotime($str_from_db)) === false) { 
    $date_interval = date_diff($is_it_yesterday, $current_date); 
    if($date_interval >= $threshold_to_deletion) { 
     Do stuff here to delete 
    } 
} else { 
    echo "DB string is not a valid date: $str_from_db"; 
} 

請注意,它沒有完成或測試,它只是在那裏鬆散地描述它將如何完成。我希望這有幫助。

蒂姆·杜馬斯

www.mpact-media.com

相關問題