我创建了该脚本:
$zips = glob("*.zip");
usort($zips, function($a, $b) { return filemtime($a) - filemtime($b); });
$dateFile = date("F d Y H:i:s", filectime($zips[0]));
$dateNow = date("F d Y H:i:s");
echo "dateFile = " . $dateFile;
echo "<br />";
echo "dateNow = " . $dateNow
输出是:
dateFile = August 03 2017 10:23:47
dateNow = August 03 2017 10:43:27
我想检查那个月的文件是否更旧a.k.a dateNow - dateFile?几个月?
答案 0 :(得分:0)
从当前日期和文件日期获取差异;并检查是否超过30天删除它:
$date1 = date_create(date("Y-m-d")); // current date
$date2 = date_create($file_date); // change file date to Y-m-d format
$diff = date_diff($date1,$date2);
if($diff->format("%R") == '+' && $diff->format("%a") != 0){
if($diff->format("%a") > 30)
//delete file
}else
//delete file
答案 1 :(得分:0)
您可以执行以下操作
if(strtotime(dateFile) < strtotime('first day of last month', time())) {
//file is older than 1 month
}
您也可以在30天后使用此功能。这将检查文件是否超过您执行此条件后30天的时间。
if(strtotime(dateFile) < (time()-2592000)) {
//file is older than 1 month
}
2592000
是30天的秒数。
答案 2 :(得分:-1)
如果要删除所有超过一个月的文件并且您使用的是Linux计算机,则可以使用bash命令来完成请求。在Windows上你需要另一个命令,但它也可以。
此命令在/path/to/files
此文件夹中查找超过30天的所有文件并删除它们。 确保您的路径正确或错误的文件被删除!
find /path/to/files* -mtime +30 -exec rm {} \;
我忘了发布正确的PHP代码!
exec("find /path/to/files* -mtime +30 -exec rm {} \;");