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

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

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

作成日: 更新日:

基本的な使い方

getATimeメソッドは、特定のファイルやディレクトリが最後にアクセスされた日時を取得するメソッドです。このメソッドは、PHPの標準拡張機能として提供されるRecursiveDirectoryIteratorクラスの一部であり、ファイルシステムを再帰的に走査して、ディレクトリ内の各項目(ファイルやサブディレクトリ)に関する詳細情報を取得する際に利用されます。

「最終アクセス時刻」とは、ファイルの内容が読み込まれたり、ディレクトリの中身がリストアップされたりした、オペレーティングシステムが記録している最後の日時を指します。これは、ファイルの内容が変更された日時(最終更新時刻:mtime)や、ファイルのパーミッションなどが変更された日時(最終変更時刻:ctime)とは異なる情報です。ファイルを開いて内容を閲覧しただけでも、このアクセス時刻は更新される可能性があります。

このメソッドは、UNIXタイムスタンプ形式の整数値を返します。この数値は、1970年1月1日00:00:00 UTCからの経過秒数を表しており、PHPのdate()関数などと組み合わせることで、人間が読める形式の具体的な日付と時刻に変換して表示することができます。例えば、システムで長期間アクセスされていないファイルを特定して整理したり、特定のファイルが最後に利用された状況を追跡したりする際に役立ちます。ただし、ファイルシステムの種類やオペレーティングシステムの設定によっては、アクセス時刻の記録が有効になっていなかったり、正確に更新されなかったりする場合がある点には注意が必要です。

構文(syntax)

1<?php
2
3// 再帰的にディレクトリを走査するためのイテレータを作成します
4// '.' は現在のディレクトリを示します
5$path = './';
6$directoryIterator = new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::SKIP_DOTS);
7$recursiveIterator = new RecursiveIteratorIterator($directoryIterator);
8
9// 各ファイルまたはディレクトリを処理します
10foreach ($recursiveIterator as $fileInfo) {
11    // $fileInfo は RecursiveDirectoryIterator の要素であり、SplFileInfo オブジェクトです。
12    // その要素の最終アクセス時刻(UNIXタイムスタンプ形式)を取得します。
13    $accessTime = $fileInfo->getATime();
14
15    // 取得した時刻とファイル/ディレクトリのパスを表示する例
16    echo "Path: " . $fileInfo->getPathname() . ", Access Time: " . date('Y-m-d H:i:s', $accessTime) . "\n";
17}

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|false

このメソッドは、ディレクトリに最後にアクセスした時刻をUNIXタイムスタンプ(秒単位)で返します。アクセス時刻の取得に失敗した場合は false を返します。