関数の概要
PHPの localtime 関数は、指定したタイムスタンプの「ローカル時間」を配列形式で取得します。配列の各要素には、秒、分、時、日、月、年など、時刻の構成要素が格納されており、より細かい日時情報を扱いたい場合に便利です。
パラメータの説明
timestamp(オプション):取得対象のタイムスタンプ(整数)。省略した場合は現在の時刻が使われます。is_associative(オプション):真偽値。true を指定すると連想配列で結果を返し、false(または省略)では数値添え字の配列を返します。
戻り値
localtime は、時刻情報を含む配列を返します。配列の内容は is_associative の値によって変わります。
- 数値添え字配列の場合:0秒、1分、2時、3日、4月(0-11)、5年(西暦から1900を引いた値)、6曜日(0=日曜)、7年内の通算日、8夏時間フラグ
- 連想配列の場合:
"tm_sec","tm_min","tm_hour","tm_mday","tm_mon","tm_year","tm_wday","tm_yday","tm_isdst"がキーになります。
使用例
基本的な使い方(数値添え字配列)
<?php
$timeArray = localtime();
print_r($timeArray);
?>
現在時刻のローカルタイムを数値配列で取得し、秒から夏時間判定までの情報を確認できます。
連想配列で取得する場合
<?php
$timeAssoc = localtime(time(), true);
echo "現在の時刻は " . $timeAssoc['tm_hour'] . "時" . $timeAssoc['tm_min'] . "分です。";
?>
第2引数に true を指定することで、連想配列として取得し、キー名でわかりやすくアクセス可能です。
特定のタイムスタンプのローカル時刻を取得する
<?php
$timestamp = strtotime('2024-01-01 00:00:00');
$timeInfo = localtime($timestamp, true);
echo "2024年1月1日午前0時の月は " . ($timeInfo['tm_mon'] + 1) . " 月です。"; // tm_monは0から始まるため+1
?>
任意の日時を UNIX タイムスタンプに変換して、それに対応するローカル時刻情報を配列で取得しています。
関連する関数
date():指定したフォーマットの文字列で日時を取得するgetdate():タイムスタンプの日時情報を連想配列で返すmktime():指定した日時のUNIXタイムスタンプを取得するstrtotime():文字列形式の日付からタイムスタンプを取得する
まとめ
localtime 関数は、PHPでローカル時刻を配列形式で取得したいときに便利な関数です。数値配列でも連想配列でも取得可能で、秒や分、時をはじめ詳細な日時情報を簡単に扱えます。特に日付や時刻の要素を個別に処理したい場合や、カスタムな時間計算をするときに役立つため、ぜひ使い方を覚えておきましょう。
