web-dev-qa-db-ja.com

PHPタイムゾーンリスト

<select>で表示するタイムゾーンのリストを生成する方法を探しています PHPでタイムゾーンのドロップダウンリストを生成する

    $list = DateTimeZone::listAbbreviations();
    $idents = DateTimeZone::listIdentifiers();

    $data = $offset = $added = array();
    foreach ($list as $abbr => $info) {
        foreach ($info as $zone) {
            if ( ! empty($zone['timezone_id'])
                AND
                ! in_array($zone['timezone_id'], $added)
                AND 
                  in_array($zone['timezone_id'], $idents)) {
                $z = new DateTimeZone($zone['timezone_id']);
                $c = new DateTime(null, $z);
                $zone['time'] = $c->format('H:i a');
                $data[] = $zone;
                $offset[] = $z->getOffset($c);
                $added[] = $zone['timezone_id'];
            }
        }
    }

    array_multisort($offset, SORT_ASC, $data);
    $options = array();
    foreach ($data as $key => $row) {
        $options[$row['timezone_id']] = $row['time'] . ' - '
                                        . formatOffset($row['offset']) 
                                        . ' ' . $row['timezone_id'];
    }

    // now you can use $options;

function formatOffset($offset) {
        $hours = $offset / 3600;
        $remainder = $offset % 3600;
        $sign = $hours > 0 ? '+' : '-';
        $hour = (int) abs($hours);
        $minutes = (int) abs($remainder / 60);

        if ($hour == 0 AND $minutes == 0) {
            $sign = ' ';
        }
        return 'GMT' . $sign . str_pad($hour, 2, '0', STR_PAD_LEFT) 
                .':'. str_pad($minutes,2, '0');

}

私の国をチェックしたとき、オフセットは間違っていました。私はアジア/シンガポールにいます。UTC/ GMT +8でなければなりません http://www.timeanddate.com/worldclock/city.html?n=236 しかし、生成されたリストによると、+ 9です。何らかの論理エラーがありますか?時間は正しかった

このリストを生成するより良い方法はありますか?上記のリンクの同じ質問から、

static $regions = array(
    'Africa' => DateTimeZone::AFRICA,
    'America' => DateTimeZone::AMERICA,
    'Antarctica' => DateTimeZone::ANTARCTICA,
    'Aisa' => DateTimeZone::ASIA,
    'Atlantic' => DateTimeZone::ATLANTIC,
    'Europe' => DateTimeZone::EUROPE,
    'Indian' => DateTimeZone::INDIAN,
    'Pacific' => DateTimeZone::PACIFIC
);
foreach ($regions as $name => $mask) {
    $tzlist[] = DateTimeZone::listIdentifiers($mask);
}

これは、たとえば、わかりやすい表示名が必要な識別子を取得するだけです。 UTC + 8アジア/シンガポールまたは類似のもの。どうすれば入手できますか?

34
Jiew Meng

Select要素用に特別に作成したタイムゾーンの配列を取得します。これは、キーがPHPタイムゾーンであり、値が人間の表現である配列に関連付けられています。これは次のとおりです。

$timezones = array(
    'Pacific/Midway'       => "(GMT-11:00) Midway Island",
    'US/Samoa'             => "(GMT-11:00) Samoa",
    'US/Hawaii'            => "(GMT-10:00) Hawaii",
    'US/Alaska'            => "(GMT-09:00) Alaska",
    'US/Pacific'           => "(GMT-08:00) Pacific Time (US &amp; Canada)",
    'America/Tijuana'      => "(GMT-08:00) Tijuana",
    'US/Arizona'           => "(GMT-07:00) Arizona",
    'US/Mountain'          => "(GMT-07:00) Mountain Time (US &amp; Canada)",
    'America/Chihuahua'    => "(GMT-07:00) Chihuahua",
    'America/Mazatlan'     => "(GMT-07:00) Mazatlan",
    'America/Mexico_City'  => "(GMT-06:00) Mexico City",
    'America/Monterrey'    => "(GMT-06:00) Monterrey",
    'Canada/Saskatchewan'  => "(GMT-06:00) Saskatchewan",
    'US/Central'           => "(GMT-06:00) Central Time (US &amp; Canada)",
    'US/Eastern'           => "(GMT-05:00) Eastern Time (US &amp; Canada)",
    'US/East-Indiana'      => "(GMT-05:00) Indiana (East)",
    'America/Bogota'       => "(GMT-05:00) Bogota",
    'America/Lima'         => "(GMT-05:00) Lima",
    'America/Caracas'      => "(GMT-04:30) Caracas",
    'Canada/Atlantic'      => "(GMT-04:00) Atlantic Time (Canada)",
    'America/La_Paz'       => "(GMT-04:00) La Paz",
    'America/Santiago'     => "(GMT-04:00) Santiago",
    'Canada/Newfoundland'  => "(GMT-03:30) Newfoundland",
    'America/Buenos_Aires' => "(GMT-03:00) Buenos Aires",
    'Greenland'            => "(GMT-03:00) Greenland",
    'Atlantic/Stanley'     => "(GMT-02:00) Stanley",
    'Atlantic/Azores'      => "(GMT-01:00) Azores",
    'Atlantic/Cape_Verde'  => "(GMT-01:00) Cape Verde Is.",
    'Africa/Casablanca'    => "(GMT) Casablanca",
    'Europe/Dublin'        => "(GMT) Dublin",
    'Europe/Lisbon'        => "(GMT) Lisbon",
    'Europe/London'        => "(GMT) London",
    'Africa/Monrovia'      => "(GMT) Monrovia",
    'Europe/Amsterdam'     => "(GMT+01:00) Amsterdam",
    'Europe/Belgrade'      => "(GMT+01:00) Belgrade",
    'Europe/Berlin'        => "(GMT+01:00) Berlin",
    'Europe/Bratislava'    => "(GMT+01:00) Bratislava",
    'Europe/Brussels'      => "(GMT+01:00) Brussels",
    'Europe/Budapest'      => "(GMT+01:00) Budapest",
    'Europe/Copenhagen'    => "(GMT+01:00) Copenhagen",
    'Europe/Ljubljana'     => "(GMT+01:00) Ljubljana",
    'Europe/Madrid'        => "(GMT+01:00) Madrid",
    'Europe/Paris'         => "(GMT+01:00) Paris",
    'Europe/Prague'        => "(GMT+01:00) Prague",
    'Europe/Rome'          => "(GMT+01:00) Rome",
    'Europe/Sarajevo'      => "(GMT+01:00) Sarajevo",
    'Europe/Skopje'        => "(GMT+01:00) Skopje",
    'Europe/Stockholm'     => "(GMT+01:00) Stockholm",
    'Europe/Vienna'        => "(GMT+01:00) Vienna",
    'Europe/Warsaw'        => "(GMT+01:00) Warsaw",
    'Europe/Zagreb'        => "(GMT+01:00) Zagreb",
    'Europe/Athens'        => "(GMT+02:00) Athens",
    'Europe/Bucharest'     => "(GMT+02:00) Bucharest",
    'Africa/Cairo'         => "(GMT+02:00) Cairo",
    'Africa/Harare'        => "(GMT+02:00) Harare",
    'Europe/Helsinki'      => "(GMT+02:00) Helsinki",
    'Europe/Istanbul'      => "(GMT+02:00) Istanbul",
    'Asia/Jerusalem'       => "(GMT+02:00) Jerusalem",
    'Europe/Kiev'          => "(GMT+02:00) Kyiv",
    'Europe/Minsk'         => "(GMT+02:00) Minsk",
    'Europe/Riga'          => "(GMT+02:00) Riga",
    'Europe/Sofia'         => "(GMT+02:00) Sofia",
    'Europe/Tallinn'       => "(GMT+02:00) Tallinn",
    'Europe/Vilnius'       => "(GMT+02:00) Vilnius",
    'Asia/Baghdad'         => "(GMT+03:00) Baghdad",
    'Asia/Kuwait'          => "(GMT+03:00) Kuwait",
    'Africa/Nairobi'       => "(GMT+03:00) Nairobi",
    'Asia/Riyadh'          => "(GMT+03:00) Riyadh",
    'Europe/Moscow'        => "(GMT+03:00) Moscow",
    'Asia/Tehran'          => "(GMT+03:30) Tehran",
    'Asia/Baku'            => "(GMT+04:00) Baku",
    'Europe/Volgograd'     => "(GMT+04:00) Volgograd",
    'Asia/Muscat'          => "(GMT+04:00) Muscat",
    'Asia/Tbilisi'         => "(GMT+04:00) Tbilisi",
    'Asia/Yerevan'         => "(GMT+04:00) Yerevan",
    'Asia/Kabul'           => "(GMT+04:30) Kabul",
    'Asia/Karachi'         => "(GMT+05:00) Karachi",
    'Asia/Tashkent'        => "(GMT+05:00) Tashkent",
    'Asia/Kolkata'         => "(GMT+05:30) Kolkata",
    'Asia/Kathmandu'       => "(GMT+05:45) Kathmandu",
    'Asia/Yekaterinburg'   => "(GMT+06:00) Ekaterinburg",
    'Asia/Almaty'          => "(GMT+06:00) Almaty",
    'Asia/Dhaka'           => "(GMT+06:00) Dhaka",
    'Asia/Novosibirsk'     => "(GMT+07:00) Novosibirsk",
    'Asia/Bangkok'         => "(GMT+07:00) Bangkok",
    'Asia/Jakarta'         => "(GMT+07:00) Jakarta",
    'Asia/Krasnoyarsk'     => "(GMT+08:00) Krasnoyarsk",
    'Asia/Chongqing'       => "(GMT+08:00) Chongqing",
    'Asia/Hong_Kong'       => "(GMT+08:00) Hong Kong",
    'Asia/Kuala_Lumpur'    => "(GMT+08:00) Kuala Lumpur",
    'Australia/Perth'      => "(GMT+08:00) Perth",
    'Asia/Singapore'       => "(GMT+08:00) Singapore",
    'Asia/Taipei'          => "(GMT+08:00) Taipei",
    'Asia/Ulaanbaatar'     => "(GMT+08:00) Ulaan Bataar",
    'Asia/Urumqi'          => "(GMT+08:00) Urumqi",
    'Asia/Irkutsk'         => "(GMT+09:00) Irkutsk",
    'Asia/Seoul'           => "(GMT+09:00) Seoul",
    'Asia/Tokyo'           => "(GMT+09:00) Tokyo",
    'Australia/Adelaide'   => "(GMT+09:30) Adelaide",
    'Australia/Darwin'     => "(GMT+09:30) Darwin",
    'Asia/Yakutsk'         => "(GMT+10:00) Yakutsk",
    'Australia/Brisbane'   => "(GMT+10:00) Brisbane",
    'Australia/Canberra'   => "(GMT+10:00) Canberra",
    'Pacific/Guam'         => "(GMT+10:00) Guam",
    'Australia/Hobart'     => "(GMT+10:00) Hobart",
    'Australia/Melbourne'  => "(GMT+10:00) Melbourne",
    'Pacific/Port_Moresby' => "(GMT+10:00) Port Moresby",
    'Australia/Sydney'     => "(GMT+10:00) Sydney",
    'Asia/Vladivostok'     => "(GMT+11:00) Vladivostok",
    'Asia/Magadan'         => "(GMT+12:00) Magadan",
    'Pacific/Auckland'     => "(GMT+12:00) Auckland",
    'Pacific/Fiji'         => "(GMT+12:00) Fiji",
);
105
Eugene Manuilov

完全なリスト、私はアプリで使用します:

(またチェックアウト: https://github.com/paptamas/timezones

<?php
$timezones = 
array (
  '(GMT-12:00) International Date Line West' => 'Pacific/Wake',
  '(GMT-11:00) Midway Island' => 'Pacific/Apia',
  '(GMT-11:00) Samoa' => 'Pacific/Apia',
  '(GMT-10:00) Hawaii' => 'Pacific/Honolulu',
  '(GMT-09:00) Alaska' => 'America/Anchorage',
  '(GMT-08:00) Pacific Time (US &amp; Canada); Tijuana' => 'America/Los_Angeles',
  '(GMT-07:00) Arizona' => 'America/Phoenix',
  '(GMT-07:00) Chihuahua' => 'America/Chihuahua',
  '(GMT-07:00) La Paz' => 'America/Chihuahua',
  '(GMT-07:00) Mazatlan' => 'America/Chihuahua',
  '(GMT-07:00) Mountain Time (US &amp; Canada)' => 'America/Denver',
  '(GMT-06:00) Central America' => 'America/Managua',
  '(GMT-06:00) Central Time (US &amp; Canada)' => 'America/Chicago',
  '(GMT-06:00) Guadalajara' => 'America/Mexico_City',
  '(GMT-06:00) Mexico City' => 'America/Mexico_City',
  '(GMT-06:00) Monterrey' => 'America/Mexico_City',
  '(GMT-06:00) Saskatchewan' => 'America/Regina',
  '(GMT-05:00) Bogota' => 'America/Bogota',
  '(GMT-05:00) Eastern Time (US &amp; Canada)' => 'America/New_York',
  '(GMT-05:00) Indiana (East)' => 'America/Indiana/Indianapolis',
  '(GMT-05:00) Lima' => 'America/Bogota',
  '(GMT-05:00) Quito' => 'America/Bogota',
  '(GMT-04:00) Atlantic Time (Canada)' => 'America/Halifax',
  '(GMT-04:00) Caracas' => 'America/Caracas',
  '(GMT-04:00) La Paz' => 'America/Caracas',
  '(GMT-04:00) Santiago' => 'America/Santiago',
  '(GMT-03:30) Newfoundland' => 'America/St_Johns',
  '(GMT-03:00) Brasilia' => 'America/Sao_Paulo',
  '(GMT-03:00) Buenos Aires' => 'America/Argentina/Buenos_Aires',
  '(GMT-03:00) Georgetown' => 'America/Argentina/Buenos_Aires',
  '(GMT-03:00) Greenland' => 'America/Godthab',
  '(GMT-02:00) Mid-Atlantic' => 'America/Noronha',
  '(GMT-01:00) Azores' => 'Atlantic/Azores',
  '(GMT-01:00) Cape Verde Is.' => 'Atlantic/Cape_Verde',
  '(GMT) Casablanca' => 'Africa/Casablanca',
  '(GMT) Edinburgh' => 'Europe/London',
  '(GMT) Greenwich Mean Time : Dublin' => 'Europe/London',
  '(GMT) Lisbon' => 'Europe/London',
  '(GMT) London' => 'Europe/London',
  '(GMT) Monrovia' => 'Africa/Casablanca',
  '(GMT+01:00) Amsterdam' => 'Europe/Berlin',
  '(GMT+01:00) Belgrade' => 'Europe/Belgrade',
  '(GMT+01:00) Berlin' => 'Europe/Berlin',
  '(GMT+01:00) Bern' => 'Europe/Berlin',
  '(GMT+01:00) Bratislava' => 'Europe/Belgrade',
  '(GMT+01:00) Brussels' => 'Europe/Paris',
  '(GMT+01:00) Budapest' => 'Europe/Belgrade',
  '(GMT+01:00) Copenhagen' => 'Europe/Paris',
  '(GMT+01:00) Ljubljana' => 'Europe/Belgrade',
  '(GMT+01:00) Madrid' => 'Europe/Paris',
  '(GMT+01:00) Paris' => 'Europe/Paris',
  '(GMT+01:00) Prague' => 'Europe/Belgrade',
  '(GMT+01:00) Rome' => 'Europe/Berlin',
  '(GMT+01:00) Sarajevo' => 'Europe/Sarajevo',
  '(GMT+01:00) Skopje' => 'Europe/Sarajevo',
  '(GMT+01:00) Stockholm' => 'Europe/Berlin',
  '(GMT+01:00) Vienna' => 'Europe/Berlin',
  '(GMT+01:00) Warsaw' => 'Europe/Sarajevo',
  '(GMT+01:00) West Central Africa' => 'Africa/Lagos',
  '(GMT+01:00) Zagreb' => 'Europe/Sarajevo',
  '(GMT+02:00) Athens' => 'Europe/Istanbul',
  '(GMT+02:00) Bucharest' => 'Europe/Bucharest',
  '(GMT+02:00) Cairo' => 'Africa/Cairo',
  '(GMT+02:00) Harare' => 'Africa/Johannesburg',
  '(GMT+02:00) Helsinki' => 'Europe/Helsinki',
  '(GMT+02:00) Istanbul' => 'Europe/Istanbul',
  '(GMT+02:00) Jerusalem' => 'Asia/Jerusalem',
  '(GMT+02:00) Kyiv' => 'Europe/Helsinki',
  '(GMT+02:00) Minsk' => 'Europe/Istanbul',
  '(GMT+02:00) Pretoria' => 'Africa/Johannesburg',
  '(GMT+02:00) Riga' => 'Europe/Helsinki',
  '(GMT+02:00) Sofia' => 'Europe/Helsinki',
  '(GMT+02:00) Tallinn' => 'Europe/Helsinki',
  '(GMT+02:00) Vilnius' => 'Europe/Helsinki',
  '(GMT+03:00) Baghdad' => 'Asia/Baghdad',
  '(GMT+03:00) Kuwait' => 'Asia/Riyadh',
  '(GMT+03:00) Moscow' => 'Europe/Moscow',
  '(GMT+03:00) Nairobi' => 'Africa/Nairobi',
  '(GMT+03:00) Riyadh' => 'Asia/Riyadh',
  '(GMT+03:00) St. Petersburg' => 'Europe/Moscow',
  '(GMT+03:00) Volgograd' => 'Europe/Moscow',
  '(GMT+03:30) Tehran' => 'Asia/Tehran',
  '(GMT+04:00) Abu Dhabi' => 'Asia/Muscat',
  '(GMT+04:00) Baku' => 'Asia/Tbilisi',
  '(GMT+04:00) Muscat' => 'Asia/Muscat',
  '(GMT+04:00) Tbilisi' => 'Asia/Tbilisi',
  '(GMT+04:00) Yerevan' => 'Asia/Tbilisi',
  '(GMT+04:30) Kabul' => 'Asia/Kabul',
  '(GMT+05:00) Ekaterinburg' => 'Asia/Yekaterinburg',
  '(GMT+05:00) Islamabad' => 'Asia/Karachi',
  '(GMT+05:00) Karachi' => 'Asia/Karachi',
  '(GMT+05:00) Tashkent' => 'Asia/Karachi',
  '(GMT+05:30) Chennai' => 'Asia/Calcutta',
  '(GMT+05:30) Kolkata' => 'Asia/Calcutta',
  '(GMT+05:30) Mumbai' => 'Asia/Calcutta',
  '(GMT+05:30) New Delhi' => 'Asia/Calcutta',
  '(GMT+05:45) Kathmandu' => 'Asia/Katmandu',
  '(GMT+06:00) Almaty' => 'Asia/Novosibirsk',
  '(GMT+06:00) Astana' => 'Asia/Dhaka',
  '(GMT+06:00) Dhaka' => 'Asia/Dhaka',
  '(GMT+06:00) Novosibirsk' => 'Asia/Novosibirsk',
  '(GMT+06:00) Sri Jayawardenepura' => 'Asia/Colombo',
  '(GMT+06:30) Rangoon' => 'Asia/Rangoon',
  '(GMT+07:00) Bangkok' => 'Asia/Bangkok',
  '(GMT+07:00) Hanoi' => 'Asia/Bangkok',
  '(GMT+07:00) Jakarta' => 'Asia/Bangkok',
  '(GMT+07:00) Krasnoyarsk' => 'Asia/Krasnoyarsk',
  '(GMT+08:00) Beijing' => 'Asia/Hong_Kong',
  '(GMT+08:00) Chongqing' => 'Asia/Hong_Kong',
  '(GMT+08:00) Hong Kong' => 'Asia/Hong_Kong',
  '(GMT+08:00) Irkutsk' => 'Asia/Irkutsk',
  '(GMT+08:00) Kuala Lumpur' => 'Asia/Singapore',
  '(GMT+08:00) Perth' => 'Australia/Perth',
  '(GMT+08:00) Singapore' => 'Asia/Singapore',
  '(GMT+08:00) Taipei' => 'Asia/Taipei',
  '(GMT+08:00) Ulaan Bataar' => 'Asia/Irkutsk',
  '(GMT+08:00) Urumqi' => 'Asia/Hong_Kong',
  '(GMT+09:00) Osaka' => 'Asia/Tokyo',
  '(GMT+09:00) Sapporo' => 'Asia/Tokyo',
  '(GMT+09:00) Seoul' => 'Asia/Seoul',
  '(GMT+09:00) Tokyo' => 'Asia/Tokyo',
  '(GMT+09:00) Yakutsk' => 'Asia/Yakutsk',
  '(GMT+09:30) Adelaide' => 'Australia/Adelaide',
  '(GMT+09:30) Darwin' => 'Australia/Darwin',
  '(GMT+10:00) Brisbane' => 'Australia/Brisbane',
  '(GMT+10:00) Canberra' => 'Australia/Sydney',
  '(GMT+10:00) Guam' => 'Pacific/Guam',
  '(GMT+10:00) Hobart' => 'Australia/Hobart',
  '(GMT+10:00) Melbourne' => 'Australia/Sydney',
  '(GMT+10:00) Port Moresby' => 'Pacific/Guam',
  '(GMT+10:00) Sydney' => 'Australia/Sydney',
  '(GMT+10:00) Vladivostok' => 'Asia/Vladivostok',
  '(GMT+11:00) Magadan' => 'Asia/Magadan',
  '(GMT+11:00) New Caledonia' => 'Asia/Magadan',
  '(GMT+11:00) Solomon Is.' => 'Asia/Magadan',
  '(GMT+12:00) Auckland' => 'Pacific/Auckland',
  '(GMT+12:00) Fiji' => 'Pacific/Fiji',
  '(GMT+12:00) Kamchatka' => 'Pacific/Fiji',
  '(GMT+12:00) Marshall Is.' => 'Pacific/Fiji',
  '(GMT+12:00) Wellington' => 'Pacific/Auckland',
  '(GMT+13:00) Nuku\'alofa' => 'Pacific/Tongatapu',
);
?>

夏時間のため、「GMT + 2」のようなタイムゾーンオフセットだけでなく、データベースにタイムゾーン識別子を保存することは非常に重要です

19
Tamás Pap

私はJiew MengとTamásPapの両方のリストを使用し、それぞれについてPHPタイムゾーン識別子のサポート(PHPは世界が知らないものをサポートします))を作成し、複合リストを作成しました。両方のリストとPHPによるサポートがありましたが、Geonames citys DBで使用されるものを選択した異なる識別子がありました。結果は以下のとおりです。

$timezones = Array(
    '(GMT-12:00) International Date Line West' => 'Pacific/Kwajalein',
    '(GMT-11:00) Midway Island' => 'Pacific/Midway',
    '(GMT-11:00) Samoa' => 'Pacific/Apia',
    '(GMT-10:00) Hawaii' => 'Pacific/Honolulu',
    '(GMT-09:00) Alaska' => 'America/Anchorage',
    '(GMT-08:00) Pacific Time (US & Canada)' => 'America/Los_Angeles',
    '(GMT-08:00) Tijuana' => 'America/Tijuana',
    '(GMT-07:00) Arizona' => 'America/Phoenix',
    '(GMT-07:00) Mountain Time (US & Canada)' => 'America/Denver',
    '(GMT-07:00) Chihuahua' => 'America/Chihuahua',
    '(GMT-07:00) La Paz' => 'America/Chihuahua',
    '(GMT-07:00) Mazatlan' => 'America/Mazatlan',
    '(GMT-06:00) Central Time (US & Canada)' => 'America/Chicago',
    '(GMT-06:00) Central America' => 'America/Managua',
    '(GMT-06:00) Guadalajara' => 'America/Mexico_City',
    '(GMT-06:00) Mexico City' => 'America/Mexico_City',
    '(GMT-06:00) Monterrey' => 'America/Monterrey',
    '(GMT-06:00) Saskatchewan' => 'America/Regina',
    '(GMT-05:00) Eastern Time (US & Canada)' => 'America/New_York',
    '(GMT-05:00) Indiana (East)' => 'America/Indiana/Indianapolis',
    '(GMT-05:00) Bogota' => 'America/Bogota',
    '(GMT-05:00) Lima' => 'America/Lima',
    '(GMT-05:00) Quito' => 'America/Bogota',
    '(GMT-04:00) Atlantic Time (Canada)' => 'America/Halifax',
    '(GMT-04:00) Caracas' => 'America/Caracas',
    '(GMT-04:00) La Paz' => 'America/La_Paz',
    '(GMT-04:00) Santiago' => 'America/Santiago',
    '(GMT-03:30) Newfoundland' => 'America/St_Johns',
    '(GMT-03:00) Brasilia' => 'America/Sao_Paulo',
    '(GMT-03:00) Buenos Aires' => 'America/Argentina/Buenos_Aires',
    '(GMT-03:00) Georgetown' => 'America/Argentina/Buenos_Aires',
    '(GMT-03:00) Greenland' => 'America/Godthab',
    '(GMT-02:00) Mid-Atlantic' => 'America/Noronha',
    '(GMT-01:00) Azores' => 'Atlantic/Azores',
    '(GMT-01:00) Cape Verde Is.' => 'Atlantic/Cape_Verde',
    '(GMT) Casablanca' => 'Africa/Casablanca',
    '(GMT) Dublin' => 'Europe/London',
    '(GMT) Edinburgh' => 'Europe/London',
    '(GMT) Lisbon' => 'Europe/Lisbon',
    '(GMT) London' => 'Europe/London',
    '(GMT) Monrovia' => 'Africa/Monrovia',
    '(GMT+01:00) Amsterdam' => 'Europe/Amsterdam',
    '(GMT+01:00) Belgrade' => 'Europe/Belgrade',
    '(GMT+01:00) Berlin' => 'Europe/Berlin',
    '(GMT+01:00) Bern' => 'Europe/Berlin',
    '(GMT+01:00) Bratislava' => 'Europe/Bratislava',
    '(GMT+01:00) Brussels' => 'Europe/Brussels',
    '(GMT+01:00) Budapest' => 'Europe/Budapest',
    '(GMT+01:00) Copenhagen' => 'Europe/Copenhagen',
    '(GMT+01:00) Ljubljana' => 'Europe/Ljubljana',
    '(GMT+01:00) Madrid' => 'Europe/Madrid',
    '(GMT+01:00) Paris' => 'Europe/Paris',
    '(GMT+01:00) Prague' => 'Europe/Prague',
    '(GMT+01:00) Rome' => 'Europe/Rome',
    '(GMT+01:00) Sarajevo' => 'Europe/Sarajevo',
    '(GMT+01:00) Skopje' => 'Europe/Skopje',
    '(GMT+01:00) Stockholm' => 'Europe/Stockholm',
    '(GMT+01:00) Vienna' => 'Europe/Vienna',
    '(GMT+01:00) Warsaw' => 'Europe/Warsaw',
    '(GMT+01:00) West Central Africa' => 'Africa/Lagos',
    '(GMT+01:00) Zagreb' => 'Europe/Zagreb',
    '(GMT+02:00) Athens' => 'Europe/Athens',
    '(GMT+02:00) Bucharest' => 'Europe/Bucharest',
    '(GMT+02:00) Cairo' => 'Africa/Cairo',
    '(GMT+02:00) Harare' => 'Africa/Harare',
    '(GMT+02:00) Helsinki' => 'Europe/Helsinki',
    '(GMT+02:00) Istanbul' => 'Europe/Istanbul',
    '(GMT+02:00) Jerusalem' => 'Asia/Jerusalem',
    '(GMT+02:00) Kyev' => 'Europe/Kiev',
    '(GMT+02:00) Minsk' => 'Europe/Minsk',
    '(GMT+02:00) Pretoria' => 'Africa/Johannesburg',
    '(GMT+02:00) Riga' => 'Europe/Riga',
    '(GMT+02:00) Sofia' => 'Europe/Sofia',
    '(GMT+02:00) Tallinn' => 'Europe/Tallinn',
    '(GMT+02:00) Vilnius' => 'Europe/Vilnius',
    '(GMT+03:00) Baghdad' => 'Asia/Baghdad',
    '(GMT+03:00) Kuwait' => 'Asia/Kuwait',
    '(GMT+03:00) Moscow' => 'Europe/Moscow',
    '(GMT+03:00) Nairobi' => 'Africa/Nairobi',
    '(GMT+03:00) Riyadh' => 'Asia/Riyadh',
    '(GMT+03:00) St. Petersburg' => 'Europe/Moscow',
    '(GMT+03:00) Volgograd' => 'Europe/Volgograd',
    '(GMT+03:30) Tehran' => 'Asia/Tehran',
    '(GMT+04:00) Abu Dhabi' => 'Asia/Muscat',
    '(GMT+04:00) Baku' => 'Asia/Baku',
    '(GMT+04:00) Muscat' => 'Asia/Muscat',
    '(GMT+04:00) Tbilisi' => 'Asia/Tbilisi',
    '(GMT+04:00) Yerevan' => 'Asia/Yerevan',
    '(GMT+04:30) Kabul' => 'Asia/Kabul',
    '(GMT+05:00) Ekaterinburg' => 'Asia/Yekaterinburg',
    '(GMT+05:00) Islamabad' => 'Asia/Karachi',
    '(GMT+05:00) Karachi' => 'Asia/Karachi',
    '(GMT+05:00) Tashkent' => 'Asia/Tashkent',
    '(GMT+05:30) Chennai' => 'Asia/Kolkata',
    '(GMT+05:30) Kolkata' => 'Asia/Kolkata',
    '(GMT+05:30) Mumbai' => 'Asia/Kolkata',
    '(GMT+05:30) New Delhi' => 'Asia/Kolkata',
    '(GMT+05:45) Kathmandu' => 'Asia/Kathmandu',
    '(GMT+06:00) Almaty' => 'Asia/Almaty',
    '(GMT+06:00) Astana' => 'Asia/Dhaka',
    '(GMT+06:00) Dhaka' => 'Asia/Dhaka',
    '(GMT+06:00) Novosibirsk' => 'Asia/Novosibirsk',
    '(GMT+06:00) Sri Jayawardenepura' => 'Asia/Colombo',
    '(GMT+06:30) Rangoon' => 'Asia/Rangoon',
    '(GMT+07:00) Bangkok' => 'Asia/Bangkok',
    '(GMT+07:00) Hanoi' => 'Asia/Bangkok',
    '(GMT+07:00) Jakarta' => 'Asia/Jakarta',
    '(GMT+07:00) Krasnoyarsk' => 'Asia/Krasnoyarsk',
    '(GMT+08:00) Beijing' => 'Asia/Hong_Kong',
    '(GMT+08:00) Chongqing' => 'Asia/Chongqing',
    '(GMT+08:00) Hong Kong' => 'Asia/Hong_Kong',
    '(GMT+08:00) Irkutsk' => 'Asia/Irkutsk',
    '(GMT+08:00) Kuala Lumpur' => 'Asia/Kuala_Lumpur',
    '(GMT+08:00) Perth' => 'Australia/Perth',
    '(GMT+08:00) Singapore' => 'Asia/Singapore',
    '(GMT+08:00) Taipei' => 'Asia/Taipei',
    '(GMT+08:00) Ulaan Bataar' => 'Asia/Irkutsk',
    '(GMT+08:00) Urumqi' => 'Asia/Urumqi',
    '(GMT+09:00) Osaka' => 'Asia/Tokyo',
    '(GMT+09:00) Sapporo' => 'Asia/Tokyo',
    '(GMT+09:00) Seoul' => 'Asia/Seoul',
    '(GMT+09:00) Tokyo' => 'Asia/Tokyo',
    '(GMT+09:00) Yakutsk' => 'Asia/Yakutsk',
    '(GMT+09:30) Adelaide' => 'Australia/Adelaide',
    '(GMT+09:30) Darwin' => 'Australia/Darwin',
    '(GMT+10:00) Brisbane' => 'Australia/Brisbane',
    '(GMT+10:00) Canberra' => 'Australia/Sydney',
    '(GMT+10:00) Guam' => 'Pacific/Guam',
    '(GMT+10:00) Hobart' => 'Australia/Hobart',
    '(GMT+10:00) Melbourne' => 'Australia/Melbourne',
    '(GMT+10:00) Port Moresby' => 'Pacific/Port_Moresby',
    '(GMT+10:00) Sydney' => 'Australia/Sydney',
    '(GMT+10:00) Vladivostok' => 'Asia/Vladivostok',
    '(GMT+11:00) Magadan' => 'Asia/Magadan',
    '(GMT+11:00) New Caledonia' => 'Asia/Magadan',
    '(GMT+11:00) Solomon Is.' => 'Asia/Magadan',
    '(GMT+12:00) Auckland' => 'Pacific/Auckland',
    '(GMT+12:00) Fiji' => 'Pacific/Fiji',
    '(GMT+12:00) Kamchatka' => 'Asia/Kamchatka',
    '(GMT+12:00) Marshall Is.' => 'Pacific/Fiji',
    '(GMT+12:00) Wellington' => 'Pacific/Auckland',
    '(GMT+13:00) Nuku\'alofa' => 'Pacific/Tongatapu'
);
4
kami

使いやすいタイムゾーンリストを作成するという同じ問題が発生しました。だから私はgeoip(http://freegeoip.net)を使用してユーザーの国を取得し、次に使用しています:

$nearest_time_zones = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $country_code);

リストは一般的に非常に短いため、これは素晴らしいことです。ただし、ユーザーが別のゾーンを指定する場合は、DateTimeZone :: listIdentifiers()からリスト全体を追加します。すべてのタイムゾーンを表示しない場合、リストされていないタイムゾーンのユーザーがいることになります。

結果のドロップダウンは次のようになります(もちろん、これよりもずっと長いです):

<optgroup label="Nearest">
<option value="blah/blah">(+5:00) Blah/Blah</option>
...
</optgroup>
<optgroup label="-11:00">
<option value="Pacific/Apia">(-11:00) Pacific/Apia</option>
<option value="Pacific/Midway">(-11:00) Pacific/Midway</option>
<option value="Pacific/Niue">(-11:00) Pacific/Niue</option>
<option value="Pacific/Pago_Pago">(-11:00) Pacific/Pago_Pago</option>
</optgroup>
<optgroup label="-10:00">
<option value="America/Adak">(-10:00) America/Adak</option>
<option value="Pacific/Fakaofo">(-10:00) Pacific/Fakaofo</option>
<option value="Pacific/Honolulu">(-10:00) Pacific/Honolulu</option>
<option value="Pacific/Johnston">(-10:00) Pacific/Johnston</option>
<option value="Pacific/Rarotonga">(-10:00) Pacific/Rarotonga</option>
<option value="Pacific/Tahiti">(-10:00) Pacific/Tahiti</option>
</optgroup>

このアプリケーションはまだ開発中であり、ユーザーからのフィードバックはまだありませんので、これが成功したアプローチであるとは言えません。しかし、geoipアプローチは言及する価値があると思いました。

3
mike

この方法はオペレーティングシステムに依存しており、常に機能するように、配列/データベースにエキサイティングなタイムゾーンを格納するだけでなく、かなりの作業になる可能性がある夏時間を考慮する必要があります

sourece http://en.wikipedia.org/wiki/Time_zone :PHP

DateTimeオブジェクトと関連関数は5.2以降、PHPコアにコンパイルされています。これには、デフォルトのスクリプトタイムゾーンを取得および設定する機能が含まれ、DateTimeは内部で独自のタイムゾーンを認識します。ネットはこれに関する広範なドキュメントを提供します。[20]そこに記載されているように、最新のタイムゾーンデータベースはPECL timezonedbを介して実装できます。

自分でデータベースを作成するか、PECL timezonedbを使用してください

2
Paul Scheltema

以下の画像に示すような類似のタイムゾーンリストを生成する場合

Timezone Dropdown list

次のphpコードを使用して、 DateTimeZone :: listIdentifiers -timezone_identifiers_listを使用してドロップダウンリストを生成できます。定義済みのすべてのタイムゾーン識別子を含む数値インデックス配列を返します。可能な値すべてのリストが必要な場合(下位互換性のあるエイリアスを含む)、DateTimeZone::ALL_WITH_BC 代わりに DateTimeZone::ALL

echo "<select>";
$tzlist = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
foreach($tzlist as $value)
{
  echo "<option value=". $value .">". $value ."</option>";
}
echo "<select>";
2
Joel Joseph

PHPでグリニッジ標準時を取得するにはどうすればよいですか? の次のコードを試してください。私は自分のアプリの1つで使用していますが、マークアップを変更して、好きなものを表示できます。

public function tz_list() {
    $zones_array = array();
    $timestamp = time();
    foreach(timezone_identifiers_list() as $key => $zone) {
      date_default_timezone_set($zone);
      $zones_array[$key]['zone'] = $zone;
      $zones_array[$key]['offset'] = (int) ((int) date('O', $timestamp))/100;
      $zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp);
    }
    return $zones_array;
}

次に:

<select name="timezone" id="timezone" class="form-control">
  <option value="">Select a time zone</option>
  <?php foreach(tz_list() as $t) { ?>
      <option value="<?php echo $t['offset']; ?>___<?php echo $t['zone']; ?>" 
      <?php echo $t['diff_from_GMT'] . ' - ' . $t['zone']; ?></option>
  <?php } ?>
</select>
2
Meezaan-ud-Din

これを試して:

<?php
/**
 * Timezones list with GMT offset
 *
 * @return array
 * @link http://stackoverflow.com/a/9328760
 */
function tz_list() {
  $zones_array = array();
  $timestamp = time();
  foreach(timezone_identifiers_list() as $key => $zone) {
    date_default_timezone_set($zone);
    $zones_array[$key]['zone'] = $zone;
    $zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp);
  }
  return $zones_array;
}
?>

<div style="margin-top: 20px;">
  <select style="font-family: 'Courier New', Courier, monospace; width: 450px;">
    <option value="0">Please, select timezone</option>
    <?php foreach(tz_list() as $t) { ?>
      <option value="<?php print $t['zone'] ?>">
        <?php print $t['diff_from_GMT'] . ' - ' . $t['zone'] ?>
      </option>
    <?php } ?>
  </select>
</div>

ソース: http://www.pontikis.net/tip/?id=24

HTH

2
Faiyaz Alam

オフセットは動的に計算されるため、これはハードコーディングされた配列よりも優れたソリューションです。

<?php 
            function toGmtOffset($timezone){
                  $userTimeZone = new DateTimeZone($timezone);
                  $offset = $userTimeZone->getOffset(new DateTime("now",new DateTimeZone('GMT'))); // Offset in seconds
                  $seconds = abs($offset);
                  $sign = $offset > 0 ? '+' : '-';
                  $hours = floor($seconds / 3600);
                  $mins = floor($seconds / 60 % 60);
                  $secs = floor($seconds % 60);
                  return sprintf("(GMT$sign%02d:%02d)", $hours, $mins, $secs);
            }
            $timezones = array(
            'Pacific/Midway'       => toGmtOffset('Pacific/Midway'       ). " Midway Island",
            'US/Samoa'             => toGmtOffset('US/Samoa'             ). " Samoa",
            'US/Hawaii'            => toGmtOffset('US/Hawaii'            ). " Hawaii",
            'US/Alaska'            => toGmtOffset('US/Alaska'            ). " Alaska",
            'US/Pacific'           => toGmtOffset('US/Pacific'           ). " Pacific Time (US &amp; Canada)",
            'America/Tijuana'      => toGmtOffset('America/Tijuana'      ). " Tijuana",
            'US/Arizona'           => toGmtOffset('US/Arizona'           ). " Arizona",
            'US/Mountain'          => toGmtOffset('US/Mountain'          ). " Mountain Time (US &amp; Canada)",
            'America/Chihuahua'    => toGmtOffset('America/Chihuahua'    ). " Chihuahua",
            'America/Mazatlan'     => toGmtOffset('America/Mazatlan'     ). " Mazatlan",
            'America/Mexico_City'  => toGmtOffset('America/Mexico_City'  ). " Mexico City",
            'America/Monterrey'    => toGmtOffset('America/Monterrey'    ). " Monterrey",
            'Canada/Saskatchewan'  => toGmtOffset('Canada/Saskatchewan'  ). " Saskatchewan",
            'US/Central'           => toGmtOffset('US/Central'           ). " Central Time (US &amp; Canada)",
            'US/Eastern'           => toGmtOffset('US/Eastern'           ). " Eastern Time (US &amp; Canada)",
            'US/East-Indiana'      => toGmtOffset('US/East-Indiana'      ). " Indiana (East)",
            'America/Bogota'       => toGmtOffset('America/Bogota'       ). " Bogota",
            'America/Lima'         => toGmtOffset('America/Lima'         ). " Lima",
            'America/Caracas'      => toGmtOffset('America/Caracas'      ). " Caracas",
            'Canada/Atlantic'      => toGmtOffset('Canada/Atlantic'      ). " Atlantic Time (Canada)",
            'America/La_Paz'       => toGmtOffset('America/La_Paz'       ). " La Paz",
            'America/Santiago'     => toGmtOffset('America/Santiago'     ). " Santiago",
            'Canada/Newfoundland'  => toGmtOffset('Canada/Newfoundland'  ). " Newfoundland",
            'America/Buenos_Aires' => toGmtOffset('America/Buenos_Aires' ). " Buenos Aires",
            'Atlantic/Stanley'     => toGmtOffset('Atlantic/Stanley'     ). " Stanley",
            'Atlantic/Azores'      => toGmtOffset('Atlantic/Azores'      ). " Azores",
            'Atlantic/Cape_Verde'  => toGmtOffset('Atlantic/Cape_Verde'  ). " Cape Verde Is.",
            'Africa/Casablanca'    => toGmtOffset('Africa/Casablanca'    ). " Casablanca",
            'Europe/Dublin'        => toGmtOffset('Europe/Dublin'        ). " Dublin",
            'Europe/Lisbon'        => toGmtOffset('Europe/Lisbon'        ). " Lisbon",
            'Europe/London'        => toGmtOffset('Europe/London'        ). " London",
            'Africa/Monrovia'      => toGmtOffset('Africa/Monrovia'      ). " Monrovia",
            'Europe/Amsterdam'     => toGmtOffset('Europe/Amsterdam'     ). " Amsterdam",
            'Europe/Belgrade'      => toGmtOffset('Europe/Belgrade'      ). " Belgrade",
            'Europe/Berlin'        => toGmtOffset('Europe/Berlin'        ). " Berlin",
            'Europe/Bratislava'    => toGmtOffset('Europe/Bratislava'    ). " Bratislava",
            'Europe/Brussels'      => toGmtOffset('Europe/Brussels'      ). " Brussels",
            'Europe/Budapest'      => toGmtOffset('Europe/Budapest'      ). " Budapest",
            'Europe/Copenhagen'    => toGmtOffset('Europe/Copenhagen'    ). " Copenhagen",
            'Europe/Ljubljana'     => toGmtOffset('Europe/Ljubljana'     ). " Ljubljana",
            'Europe/Madrid'        => toGmtOffset('Europe/Madrid'        ). " Madrid",
            'Europe/Paris'         => toGmtOffset('Europe/Paris'         ). " Paris",
            'Europe/Prague'        => toGmtOffset('Europe/Prague'        ). " Prague",
            'Europe/Rome'          => toGmtOffset('Europe/Rome'          ). " Rome",
            'Europe/Sarajevo'      => toGmtOffset('Europe/Sarajevo'      ). " Sarajevo",
            'Europe/Skopje'        => toGmtOffset('Europe/Skopje'        ). " Skopje",
            'Europe/Stockholm'     => toGmtOffset('Europe/Stockholm'     ). " Stockholm",
            'Europe/Vienna'        => toGmtOffset('Europe/Vienna'        ). " Vienna",
            'Europe/Warsaw'        => toGmtOffset('Europe/Warsaw'        ). " Warsaw",
            'Europe/Zagreb'        => toGmtOffset('Europe/Zagreb'        ). " Zagreb",
            'Europe/Athens'        => toGmtOffset('Europe/Athens'        ). " Athens",
            'Europe/Bucharest'     => toGmtOffset('Europe/Bucharest'     ). " Bucharest",
            'Africa/Cairo'         => toGmtOffset('Africa/Cairo'         ). " Cairo",
            'Africa/Harare'        => toGmtOffset('Africa/Harare'        ). " Harare",
            'Europe/Helsinki'      => toGmtOffset('Europe/Helsinki'      ). " Helsinki",
            'Europe/Istanbul'      => toGmtOffset('Europe/Istanbul'      ). " Istanbul",
            'Asia/Jerusalem'       => toGmtOffset('Asia/Jerusalem'       ). " Jerusalem",
            'Europe/Kiev'          => toGmtOffset('Europe/Kiev'          ). " Kyiv",
            'Europe/Minsk'         => toGmtOffset('Europe/Minsk'         ). " Minsk",
            'Europe/Riga'          => toGmtOffset('Europe/Riga'          ). " Riga",
            'Europe/Sofia'         => toGmtOffset('Europe/Sofia'         ). " Sofia",
            'Europe/Tallinn'       => toGmtOffset('Europe/Tallinn'       ). " Tallinn",
            'Europe/Vilnius'       => toGmtOffset('Europe/Vilnius'       ). " Vilnius",
            'Asia/Baghdad'         => toGmtOffset('Asia/Baghdad'         ). " Baghdad",
            'Asia/Kuwait'          => toGmtOffset('Asia/Kuwait'          ). " Kuwait",
            'Africa/Nairobi'       => toGmtOffset('Africa/Nairobi'       ). " Nairobi",
            'Asia/Riyadh'          => toGmtOffset('Asia/Riyadh'          ). " Riyadh",
            'Europe/Moscow'        => toGmtOffset('Europe/Moscow'        ). " Moscow",
            'Asia/Tehran'          => toGmtOffset('Asia/Tehran'          ). " Tehran",
            'Asia/Baku'            => toGmtOffset('Asia/Baku'            ). " Baku",
            'Europe/Volgograd'     => toGmtOffset('Europe/Volgograd'     ). " Volgograd",
            'Asia/Muscat'          => toGmtOffset('Asia/Muscat'          ). " Muscat",
            'Asia/Tbilisi'         => toGmtOffset('Asia/Tbilisi'         ). " Tbilisi",
            'Asia/Yerevan'         => toGmtOffset('Asia/Yerevan'         ). " Yerevan",
            'Asia/Kabul'           => toGmtOffset('Asia/Kabul'           ). " Kabul",
            'Asia/Karachi'         => toGmtOffset('Asia/Karachi'         ). " Karachi",
            'Asia/Tashkent'        => toGmtOffset('Asia/Tashkent'        ). " Tashkent",
            'Asia/Kolkata'         => toGmtOffset('Asia/Kolkata'         ). " Kolkata",
            'Asia/Kathmandu'       => toGmtOffset('Asia/Kathmandu'       ). " Kathmandu",
            'Asia/Yekaterinburg'   => toGmtOffset('Asia/Yekaterinburg'   ). " Ekaterinburg",
            'Asia/Almaty'          => toGmtOffset('Asia/Almaty'          ). " Almaty",
            'Asia/Dhaka'           => toGmtOffset('Asia/Dhaka'           ). " Dhaka",
            'Asia/Novosibirsk'     => toGmtOffset('Asia/Novosibirsk'     ). " Novosibirsk",
            'Asia/Bangkok'         => toGmtOffset('Asia/Bangkok'         ). " Bangkok",
            'Asia/Jakarta'         => toGmtOffset('Asia/Jakarta'         ). " Jakarta",
            'Asia/Krasnoyarsk'     => toGmtOffset('Asia/Krasnoyarsk'     ). " Krasnoyarsk",
            'Asia/Chongqing'       => toGmtOffset('Asia/Chongqing'       ). " Chongqing",
            'Asia/Hong_Kong'       => toGmtOffset('Asia/Hong_Kong'       ). " Hong Kong",
            'Asia/Kuala_Lumpur'    => toGmtOffset('Asia/Kuala_Lumpur'    ). " Kuala Lumpur",
            'Australia/Perth'      => toGmtOffset('Australia/Perth'      ). " Perth",
            'Asia/Singapore'       => toGmtOffset('Asia/Singapore'       ). " Singapore",
            'Asia/Taipei'          => toGmtOffset('Asia/Taipei'          ). " Taipei",
            'Asia/Ulaanbaatar'     => toGmtOffset('Asia/Ulaanbaatar'     ). " Ulaan Bataar",
            'Asia/Urumqi'          => toGmtOffset('Asia/Urumqi'          ). " Urumqi",
            'Asia/Irkutsk'         => toGmtOffset('Asia/Irkutsk'         ). " Irkutsk",
            'Asia/Seoul'           => toGmtOffset('Asia/Seoul'           ). " Seoul",
            'Asia/Tokyo'           => toGmtOffset('Asia/Tokyo'           ). " Tokyo",
            'Australia/Adelaide'   => toGmtOffset('Australia/Adelaide'   ). " Adelaide",
            'Australia/Darwin'     => toGmtOffset('Australia/Darwin'     ). " Darwin",
            'Asia/Yakutsk'         => toGmtOffset('Asia/Yakutsk'         ). " Yakutsk",
            'Australia/Brisbane'   => toGmtOffset('Australia/Brisbane'   ). " Brisbane",
            'Australia/Canberra'   => toGmtOffset('Australia/Canberra'   ). " Canberra",
            'Pacific/Guam'         => toGmtOffset('Pacific/Guam'         ). " Guam",
            'Australia/Hobart'     => toGmtOffset('Australia/Hobart'     ). " Hobart",
            'Australia/Melbourne'  => toGmtOffset('Australia/Melbourne'  ). " Melbourne",
            'Pacific/Port_Moresby' => toGmtOffset('Pacific/Port_Moresby' ). " Port Moresby",
            'Australia/Sydney'     => toGmtOffset('Australia/Sydney'     ). " Sydney",
            'Asia/Vladivostok'     => toGmtOffset('Asia/Vladivostok'     ). " Vladivostok",
            'Asia/Magadan'         => toGmtOffset('Asia/Magadan'         ). " Magadan",
            'Pacific/Auckland'     => toGmtOffset('Pacific/Auckland'     ). " Auckland",
            'Pacific/Fiji'         => toGmtOffset('Pacific/Fiji'         ). " Fiji",
            );
0
Milan Markovic