0

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

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 に答える