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

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

作成日: 更新日:

基本的な使い方

getCTimeメソッドは、DirectoryIteratorオブジェクトが現在指しているファイルまたはディレクトリのiノード変更時刻(ctime)を取得するメソッドです。この時刻は、ファイルの内容が更新された「最終更新時刻」(getMTimeメソッドが返すもの)や、ファイルが最後に読み込まれた「最終アクセス時刻」(getATimeメソッドが返すもの)とは異なる性質を持っています。

具体的に、iノード変更時刻が何を指すかはオペレーティングシステムによって異なります。Windows環境では、一般的にファイルの作成時刻として扱われることが多いです。一方、Unix系のシステムでは、ファイルの内容そのものではなく、ファイルのパーミッション、所有者、グループ、またはリンク数といったファイルのメタデータ(iノード情報)が変更された時刻を指します。例えば、ファイルのアクセス権限が変更された際に、このgetCTimeメソッドが返す時刻が更新されます。

このメソッドは、取得した時刻をUnixタイムスタンプ形式の整数値として返します。Unixタイムスタンプとは、1970年1月1日00:00:00 UTCからの経過秒数を表す数値です。このタイムスタンプは、date()関数などを使って読みやすい日付や時刻の形式に変換したり、他のタイムスタンプと比較してファイルの変更履歴を追跡したりする際に利用できます。ファイルのメタデータの変更監視や、特定の条件でファイルをフィルタリングするなどの場面で役立ちます。

構文(syntax)

1<?php
2$iterator = new DirectoryIterator('.');
3foreach ($iterator as $file) {
4    if ($file->isFile()) {
5        $inodeChangeTime = $file->getCTime();
6        break;
7    }
8}
9?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int|false

このメソッドは、ディレクトリ内のエントリ(ファイルやサブディレクトリ)のinodeの変更時刻を整数値で返します。時刻はUnixエポックからの秒数で表されます。エラーが発生した場合はfalseを返します。

【PHP8.x】getCTimeメソッドの使い方 | いっしー@Webエンジニア