関数の概要
PHPの timezone_identifiers_list 関数は、利用可能なすべてのタイムゾーン識別子の一覧を取得するための関数です。タイムゾーンは地域や都市ごとに区別され、日付や時刻の処理を正確に行う際に欠かせません。この関数を使うことで、サーバーでサポートされているタイムゾーンの全リストを簡単に取得できます。
パラメータの説明
int $what = DateTimeZone::ALL(省略可能)
指定するタイムゾーンの種類です。主に以下の定数が使えます。DateTimeZone::AFRICA— アフリカのタイムゾーンのみDateTimeZone::AMERICA— アメリカ大陸のタイムゾーンのみDateTimeZone::ANTARCTICA— 南極のタイムゾーンのみDateTimeZone::ARCTIC— 北極圏のタイムゾーンのみDateTimeZone::ASIA— アジアのタイムゾーンのみDateTimeZone::ATLANTIC— 大西洋のタイムゾーンのみDateTimeZone::AUSTRALIA— オーストラリアのタイムゾーンのみDateTimeZone::EUROPE— ヨーロッパのタイムゾーンのみDateTimeZone::INDIAN— インド洋のタイムゾーンのみDateTimeZone::PACIFIC— 太平洋のタイムゾーンのみDateTimeZone::UTC— 協定世界時(UTC)のみDateTimeZone::ALL(デフォルト) — すべてのタイムゾーン
string $country = null(省略可能)
ISO 3166-1 の国コードを指定すると、その国のタイムゾーンのみを取得できます。省略した場合は無視します。
戻り値
成功した場合、指定した条件に該当するタイムゾーン識別子の配列を返します。失敗すると false を返します。配列の要素は標準的なタイムゾーンID文字列(例: Asia/Tokyo、Europe/London)です。
使用例
基本的な使い方(すべてのタイムゾーンを取得)
<?php
$timezones = timezone_identifiers_list();
print_r($timezones);
?>
上記の例では、すべてのタイムゾーン識別子が配列で取得できます。大量のタイムゾーン名が表示されます。
特定の地域のタイムゾーンを取得(例:アジア)
<?php
$asiaTimezones = timezone_identifiers_list(DateTimeZone::ASIA);
print_r($asiaTimezones);
?>
この例では、アジア地域に属するタイムゾーンだけが取得できます。Asia/Tokyo や Asia/Shanghai などが含まれます。
特定の国のタイムゾーンを取得(例:日本)
<?php
$japanTimezones = timezone_identifiers_list(DateTimeZone::ALL, 'JP');
print_r($japanTimezones);
?>
国コード JP(日本)を指定すると、日本のタイムゾーンだけが取得できます。通常は Asia/Tokyo のみが含まれます。
関連する関数
date_default_timezone_set()— スクリプトのデフォルトタイムゾーンを設定date_default_timezone_get()— 現在のデフォルトタイムゾーンを取得DateTimeZone::__construct()— 新しいタイムゾーンオブジェクトを作成DateTime::setTimezone()— DateTimeオブジェクトのタイムゾーンを変更
まとめ
timezone_identifiers_list 関数は、PHPで扱えるタイムゾーン識別子の全リストを簡単に取得できる便利な関数です。地域や国ごとに絞り込みもできるため、ユーザーの地域に合わせた日時処理や表示を行う際に役立ちます。日付・時刻を正確に扱うための第一歩として、ぜひ活用してください。
