タイムゾーンのリストを取得する
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);