2016-11-30 37 views
1

我想建立一個cron作業,這將刪除它們是老5天我在英國排又一排,但我的服務器有不同的時間/日期設置就可以了,所以當我拉它它回來了錯誤的日期,以便在我的劇本我設置了宗教挖掘這是香港專業教育學院走到這一步,PDO刪除是在X天前

date_default_timezone_set('Europe/London'); 
$sTime = date("d-m-Y"); 
$sql = "DELETE FROM application_running WHERE date < NOW() - INTERVAL 5 DAY"; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 

這將刪除所有結果不管他們多大年紀我也試圖把編輯日期像這樣

date_default_timezone_set('Europe/London'); 
$sTime = date("d-m-Y"); 
$sql = "DELETE FROM application_running WHERE date < date(d-m-Y) - INTERVAL 5 DAY"; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 

這又沒有工作。

結果看起來像2016年1月11日在數據庫中,因此只需要移除小於$ STIME

回答

1

您可以從PHP使用DateTime類

// create date with your timezone 
$date = new \DateTime('now', new \DateTimeZone('Europe/London')); 
// remove 5 days 
$date->sub(new DateInterval('P5D')); 

$sql = "DELETE FROM application_running WHERE date < '{$date->format('d-m-Y')}' "; 
$stmt = $db->prepare($sql); 
$stmt->execute(); 

年長5天所有行請參閱:

http://php.net/manual/en/class.datetime.php

http://php.net/manual/en/datetime.sub.php

http://php.net/manual/en/class.datetimezone.php

+0

謝謝你的工作完美,感謝你添加註釋到代碼 –