Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Pdo删除x天以前的行_Php_Pdo - Fatal编程技术网

Php Pdo删除x天以前的行

Php Pdo删除x天以前的行,php,pdo,Php,Pdo,我想设置一个cron作业,它将删除5天以前的行。我在英国,但我的服务器上设置了不同的时间/日期,所以当我拉它时,它会返回错误的日期。因此,在我的脚本中,我将宗教设置为我的宗教这就是我目前得到的 date_default_timezone_set('Europe/London'); $sTime = date("d-m-Y"); $sql = "DELETE FROM application_running WHERE date < NOW() - INTERVAL 5 DAY";

我想设置一个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\u default\u timezone\u set(“欧洲/伦敦”);
$sTime=日期(“d-m-Y”);
$sql=“从运行日期<现在()-间隔5天的应用程序中删除”;
$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();
date\u default\u timezone\u set(“欧洲/伦敦”);
$sTime=日期(“d-m-Y”);
$sql=“从运行日期<日期(d-m-Y)-间隔5天的应用程序中删除”;
$stmt=$db->prepare($sql);
$stmt->execute();
这也没用


数据库中的结果看起来像01-11-2016,因此只需删除所有比$sTime早5天的行即可

您可以使用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();
//使用时区创建日期
$date=new\DateTime('now',new\DateTimeZone('Europe/London');
//删除5天
$date->sub(新的日期间隔('P5D'));
$sql=“从运行日期<'{$date->format('d-m-Y')}'的应用程序中删除”;
$stmt=$db->prepare($sql);
$stmt->execute();
见:


感谢您的完美工作,感谢您在代码中添加注释