4

このコードを作成して、ファイルが最後にタッチされた日付を取得し、AM/PM形式でユーザーに表示します。

しかし、それは機能していないようです。私は近くにいることを知っています。私は何が間違っているのですか?

$filename = 'test.html';
if (file_exists($filename)) {
    $date = date(filemtime($filename));
    clearstatcache();
}
echo "- last updated: " . date('F d Y h:i A', strtotime($date));

出力:最終更新日:1969年12月31日06:59 PM

4

2 に答える 2

7

これを試して:

if (file_exists($filename)) {
    $date = filemtime($filename);
    clearstatcache();
}
echo "- last updated: " . date('F d Y h:i A', $date);

あなたのコードでは、この行は次のとおりです。

$date = date(filemtime($filename));

UNIXタイムスタンプを返すため、機能しませんfilemtime。UNIXタイムスタンプは、最初のパラメータとしてに渡されますdate()。それが機能したとしても、その日付を。を使用してUNIXタイムスタンプにstrtotime()戻し、次に日付文字列に戻すことになります。これは少し非効率的です。

$dateまた、ファイルが存在しない場合、コードの他の場所に設定されている場合はどうなるかを検討してください。

于 2012-05-30T10:00:11.793 に答える
0
$date = date(filemtime($filename));

その行は間違っています。の最初の引数date()はフォーマット文字列です。と置換する:

$date = filemtime($filename);

strtotime()また、タイムスタンプで実行する必要はありません。そのまま使用してください。

echo date('F d Y h:i A', $date);
于 2012-05-30T10:00:34.357 に答える