Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】getMTimeメソッドの使い方

getMTimeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

getMTimeメソッドは、PHPのRecursiveDirectoryIteratorクラスに属し、現在のイテレータが指し示すファイルまたはディレクトリの最終更新時刻を取得するために実行されるメソッドです。

このメソッドは、対象のファイルやディレクトリが最後に変更された日時、つまり「最終更新時刻(Modification Time)」の情報を取得します。取得される時刻は、1970年1月1日00:00:00 UTC(協定世界時)からの経過秒数として表されるUNIXタイムスタンプ形式の整数値です。ファイルの内容が上書きされたり、ディレクトリ内のファイルやサブディレクトリが追加・削除されたりした場合に、この最終更新時刻は更新されます。

getMTimeメソッドの利用は、システム内でファイルの更新状況を監視したり、特定の条件に基づいてファイルを処理したりする際に非常に重要です。例えば、ウェブサイトのキャッシュを無効にするタイミングの決定、バックアップシステムにおける変更されたファイルの識別、あるいは異なるシステムのファイル同期といった場面で、この最終更新時刻の情報が活用されます。

取得したUNIXタイムスタンプは、PHPのdate()関数などの時間関連関数と組み合わせることで、人間が理解しやすい年-月-日 時:分:秒といった形式に変換することが可能です。これにより、プログラムの実行結果やログの可読性が向上し、ファイルの状態をより詳細に把握できるようになります。

構文(syntax)

1<?php
2
3// RecursiveDirectoryIterator のインスタンスを作成します。
4// ここでは、現在のスクリプトがあるディレクトリ (__DIR__) を例として使用します。
5$directoryIterator = new RecursiveDirectoryIterator(__DIR__);
6
7// RecursiveIteratorIterator でラップすることで、サブディレクトリも再帰的に走査できるようになります。
8$recursiveIterator = new RecursiveIteratorIterator($directoryIterator);
9
10// ディレクトリ内の各ファイルやディレクトリをループ処理します。
11foreach ($recursiveIterator as $fileInfo) {
12    // 現在の要素がファイルであるかを確認します。
13    if ($fileInfo->isFile()) {
14        // getMTime() メソッドを呼び出して、ファイルの最終変更時刻 (Unixタイムスタンプ) を取得します。
15        $lastModifiedTime = $fileInfo->getMTime();
16
17        // 取得したタイムスタンプを人間が読める形式に変換して出力します。
18        echo "ファイル: " . $fileInfo->getFilename() . " の最終変更時刻: " . date('Y-m-d H:i:s', $lastModifiedTime) . "\n";
19    }
20}
21
22?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

RecursiveDirectoryIterator::getMTime()メソッドは、ファイルまたはディレクトリの最終更新時刻をUnixタイムスタンプ(秒単位の整数)で返します。