我想设置一个cron作业,它会删除5天以上我在英国的行,但是我的服务器上设置了不同的时间/日期,所以当我拉它时会返回错误的日期所以在我的剧本中,我将宗教设定为我的,这是迄今为止我所拥有的
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();
再次无效。
结果在数据库中看起来像01-11-2016所以只需删除比$ sTime早5天的所有行
答案 0 :(得分: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();
请参阅:
http://php.net/manual/en/class.datetime.php