localtime

関数の概要

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でローカル時刻を配列形式で取得したいときに便利な関数です。数値配列でも連想配列でも取得可能で、秒や分、時をはじめ詳細な日時情報を簡単に扱えます。特に日付や時刻の要素を個別に処理したい場合や、カスタムな時間計算をするときに役立つため、ぜひ使い方を覚えておきましょう。