PHP:如何从filectime()减去例如9天

时间:2012-05-16 12:07:54

标签: php

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

的创建时间

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

9天

filectime()。

代码

<?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最后一次更改:May Tue 2012 22:50:10.-777600

4 个答案:

答案 0 :(得分:3)

filectime()

的结果中减去777600(9 days in seconds

答案 1 :(得分:2)

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

此外,您不想在filectime()之后休息9天。您想要做的是从现在开始删除9天,看看它是否大于返回的filectime()

int $last_modified = filectime("...");
int $nine_days_ago = time() - 777600;
if($nine_days_ago < $last_modified) {
  ...
}

答案 2 :(得分:1)

我建议使用像这样的find . -name "*.trc" -mtime +9 -exec rm -rf {} \;这样的unix命令 您可以使用“`”(反引号)或exec或system

制作cronjob甚至在PHP中运行它

答案 3 :(得分:0)

filectime返回一个unixtimestamp。如果计算9天的unixtimestamp。那么你可以从unctimestap中取消unixtimestamp 9天,你从filectime收到了。然后你得到一个超过9天的unixtimestamp。

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