timezone_identifiers_list

関数の概要

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/TokyoEurope/London)です。

使用例

基本的な使い方(すべてのタイムゾーンを取得)

<?php
$timezones = timezone_identifiers_list();
print_r($timezones);
?>

上記の例では、すべてのタイムゾーン識別子が配列で取得できます。大量のタイムゾーン名が表示されます。

特定の地域のタイムゾーンを取得(例:アジア)

<?php
$asiaTimezones = timezone_identifiers_list(DateTimeZone::ASIA);
print_r($asiaTimezones);
?>

この例では、アジア地域に属するタイムゾーンだけが取得できます。Asia/TokyoAsia/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で扱えるタイムゾーン識別子の全リストを簡単に取得できる便利な関数です。地域や国ごとに絞り込みもできるため、ユーザーの地域に合わせた日時処理や表示を行う際に役立ちます。日付・時刻を正確に扱うための第一歩として、ぜひ活用してください。