0

PHPでファイルブラウザのようなアプリを構築しているときに、かなり奇妙な問題に遭遇しました。ファイルの内容が最後に変更された日付が必要なため、このアプリの目的でfilemtime()は、 の方が便利です。残念なことに、filemtime()see によって返される日付はひどく間違っており、常に よりも低くfilectime()、ほとんどの場合、ほぼ 1 年近くなっています。

これが可能なシナリオを考えることはできますが (ファイルが最近chownされたが、それがずっと前に変更された場合)。ただし、すべてのファイルが 1 か月半前にマシンにコピーされたため、これは当てはまりません。

コードはこれで簡単です

$mtime = date ("F d Y H:i:s.", filemtime(BASE_DIR.$target));
4

1 に答える 1

1

私の知る限り、これは正常です。ファイルをコピーするとき、OS は、ファイルの元の「最終更新日」を維持しながら、作成時刻をコピー時刻に設定することがあります。

どの OS とファイルシステムの組み合わせがこれをサポートしているかはわかりませんし、一目でソースを見つけることもできませんが、Windows、OS X、および *nix で発生したことは間違いありません。

于 2013-01-20T15:18:01.230 に答える