0

我想删除所有超过 9 天的文件。由于 filectime 返回一个

某些文件,因此,我只想知道如何减去一个例子:9天

文件时间()。

代码

<?php
 $filename = 'JSONFormate.json';
 if (file_exists($filename)) {
echo "$filename was last changed: " . date("F D Y H:i:s.", filectime
($filename));
echo "\n......".filectime($filename)-777600;
}
?>

结果 JSONFormate.json 上次更改时间:2012 年 5 月星期二 22:50:10.-777600

4

4 回答 4

3

从结果中减去 777600(以秒为单位的 9 天)filectime()

于 2012-05-16T12:10:39.877 回答
2

filectime()返回文件的最后修改时间,而不是创建时间。

你也不想休息 9 天filectime()。您要做的是从现在起 9 天后删除,看看它是否大于返回的filectime()

int $last_modified = filectime("...");
int $nine_days_ago = time() - 777600;
if($nine_days_ago < $last_modified) {
  ...
}
于 2012-05-16T12:10:50.050 回答
1

我建议使用像这样的 unix 命令find . -name "*.trc" -mtime +9 -exec rm -rf {} \; 您可以使用“`”(反引号)或 exec 或 system 在 PHP 中创建一个 cronjob 甚至运行它

于 2012-05-16T12:18:01.507 回答
0

filectime 返回一个 unixtimestamp。如果计算 9 天的 unixtimestamp。然后您可以从您从 filectime 收到的 unixtimestap 中减去 9 天的 unixtimestamp。然后你会得到一个超过 9 天的 unixtimestamp。

然后检查所有时间戳低于计算时间戳的文件。

于 2012-05-16T12:15:44.783 回答