PHPプログラミング

レシピ

ファイル / ディレクトリ

ファイル/ディレクトリを最後に更新した時刻を取得する

filemtime関数を使って、ファイル / ディレクトリの最終更新日時を取得する方法について解説します。

この記事のポイント

  • ファイルの最終更新日時を取得する
  • ディレクトリは内部のファイルが更新された日時を取得する

目次

ファイル/ディレクトリの最後に更新した時刻を取得する

filemtime関数にファイル、またはディレクトリのパスを渡すと、最後に更新された時刻を取得することができます。

コード例

filemtime("./memo.txt");

返り値は時刻をタイムスタンプ形式で返し、該当するファイルが無いなどの理由で時刻の取得に失敗した場合はfalseを返します。

ディレクトリについては、ディレクトリ内のファイルが新規作成、更新、削除などがディレクトリの更新日時として取得することができます。

こちらの関数はファイルのパーミッションには影響されないため、読み取り権限などがないファイルについても日時を取得することが可能です。

ファイル / ディレクトリの更新時間ではなく、最後にアクセスされた時刻を取得したい場合はfileatime関数を使用することができます。
詳しくは「ファイルへ最後にアクセスした時刻を取得する」をご覧ください。

Note

ファイルが作成された時刻を取得する関数はありません。
もし作成日時の情報が必要となる場合は、データベースに保存するか、ファイル内部に書き込むなどの方法で作成時刻を保存しておく必要があります。

使用例

ファイルの更新日時を取得し、date関数で時刻フォーマットを整えて出力する例です。

コード例

// ファイル・ディレクトリへのパス
$path1 = './test/index.html';

// タイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');

// ファイルの最終更新日時を取得し、date関数で時刻を整えて出力する
echo date( "Y-m-d H:i:s", filemtime($path1));

出力例は次のようになります。

出力例

2018-12-13 15:48:11

filemtime関数から取得した更新日時のタイムスタンプを、date関数で「Y-m-d H:i:s」の時刻フォーマットの形に整えて出力しています。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

ありがとうございます。
コメントを送信しました。