岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

タイムゾーンのリストを取得する

PHPにはサポートされるタイムゾーンのリストがある。PHP5.1.0以降ならtimezone_identifiers_list関数でこのリストが取得できる。だが、obsoleteなリストも含まれてしまうため、これらを除外したいケースもあるだろう。

preg_grep関数を使えば正規表現で配列のフィルタリングができるので、下記のように書ける。

$regions = array(
    'Africa',
    'America',
    'Antarctica',
    'Arctic',
    'Asia',
    'Atlantic',
    'Australia',
    'Europe',
    'Indian',
    'Pacific'
);
$validPattern = '{(' . implode('|', $regions) . ')/.*$}';
$identifiers = preg_grep($validPattern, timezone_identifiers_list());

print_r($identifiers);