PHP 输出各个时区对应的时差表

根据国家地区码获取时区值

// 获取美国的时区 
$countryCode = 'CN';
$timezones = DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, $countryCode);

// 输出美国的所有时区
foreach ($timezones as $timezone) {
    echo $timezone . PHP_EOL;
}
// Asia/Shanghai
// Asia/Urumqi

// timezone_abbreviations_list() 函数是 DateTimeZone::listAbbreviations() 的别名。此函数以数组形式返回时区的dst、offset和name值。
$listTimeZone = timezone_abbreviations_list();
 print_r($listTimeZone["acst"]);
/*
Array
(
    [0] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/Adelaide
        )

    [1] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/Broken_Hill
        )

    [2] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/Darwin
        )

    [3] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/North
        )

    [4] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/South
        )

    [5] => Array
        (
            [dst] =>
            [offset] => 34200
            [timezone_id] => Australia/Yancowinna
        )

)

*/

在项目中需要用户到各个时区:(Asia/Shanghai),一时不知道怎么直接快速的定位国家所对应的时区,

$timezone_identifiers = DateTimeZone::listIdentifiers();
for ($i=0; $i < count($timezone_identifiers); $i++) {

    $timeZone = $timezone_identifiers[$i];
    $dateTimeZone = new DateTimeZone($timeZone);
    $dateTime = new DateTime('now', $dateTimeZone);
//    $timeOffset = $dateTimeZone->getOffset($dateTime);
    $timeOffset = timezone_offset_get(new DateTimeZone( $timeZone), new DateTime());
    $timeOffsetStr = output_offset($timeOffset);
    echo "$timeZone\t$timeOffsetStr\n";
}

function output_offset($offset) {
    $pre = $offset < 0 ? '-' : '+';
    if ($offset < 0) $offset = -$offset;
    $hour = (int)($offset / 3600);
    $minute = (int)($offset / 60) % 60;
    return $pre . sprintf('%02d:%02d', $hour, $minute);
}

打印

Africa/Abidjan	+00:00
Africa/Accra	+00:00
Africa/Addis_Ababa	+03:00
Africa/Algiers	+01:00
Africa/Asmara	+03:00
Africa/Bamako	+00:00
Africa/Bangui	+01:00
Africa/Banjul	+00:00
Africa/Bissau	+00:00
Africa/Blantyre	+02:00
Africa/Brazzaville	+01:00
Africa/Bujumbura	+02:00
Africa/Cairo	+02:00
Africa/Casablanca	+01:00
Africa/Ceuta	+02:00
Africa/Conakry	+00:00
Africa/Dakar	+00:00
Africa/Dar_es_Salaam	+03:00
Africa/Djibouti	+03:00
Africa/Douala	+01:00
Africa/El_Aaiun	+01:00
Africa/Freetown	+00:00
Africa/Gaborone	+02:00
Africa/Harare	+02:00
Africa/Johannesburg	+02:00
Africa/Juba	+03:00
Africa/Kampala	+03:00
Africa/Khartoum	+02:00
Africa/Kigali	+02:00
Africa/Kinshasa	+01:00
Africa/Lagos	+01:00
Africa/Libreville	+01:00
Africa/Lome	+00:00
Africa/Luanda	+01:00
Africa/Lubumbashi	+02:00
Africa/Lusaka	+02:00
Africa/Malabo	+01:00
Africa/Maputo	+02:00
Africa/Maseru	+02:00
Africa/Mbabane	+02:00
Africa/Mogadishu	+03:00
Africa/Monrovia	+00:00
Africa/Nairobi	+03:00
Africa/Ndjamena	+01:00
Africa/Niamey	+01:00
Africa/Nouakchott	+00:00
Africa/Ouagadougou	+00:00
Africa/Porto-Novo	+01:00
Africa/Sao_Tome	+00:00
Africa/Tripoli	+02:00
Africa/Tunis	+01:00
Africa/Windhoek	+02:00
America/Adak	-09:00
America/Anchorage	-08:00
America/Anguilla	-04:00
America/Antigua	-04:00
America/Araguaina	-03:00
America/Argentina/Buenos_Aires	-03:00
America/Argentina/Catamarca	-03:00
America/Argentina/Cordoba	-03:00
America/Argentina/Jujuy	-03:00
America/Argentina/La_Rioja	-03:00
America/Argentina/Mendoza	-03:00
America/Argentina/Rio_Gallegos	-03:00
America/Argentina/Salta	-03:00
America/Argentina/San_Juan	-03:00
America/Argentina/San_Luis	-03:00
America/Argentina/Tucuman	-03:00
America/Argentina/Ushuaia	-03:00
America/Aruba	-04:00
America/Asuncion	-04:00
America/Atikokan	-05:00
America/Bahia	-03:00
America/Bahia_Banderas	-05:00
America/Barbados	-04:00
America/Belem	-03:00
America/Belize	-06:00
America/Blanc-Sablon	-04:00
America/Boa_Vista	-04:00
America/Bogota	-05:00
America/Boise	-06:00
America/Cambridge_Bay	-06:00
America/Campo_Grande	-04:00
America/Cancun	-05:00
America/Caracas	-04:00
America/Cayenne	-03:00
America/Cayman	-05:00
America/Chicago	-05:00
America/Chihuahua	-06:00
America/Costa_Rica	-06:00
America/Creston	-07:00
America/Cuiaba	-04:00
America/Curacao	-04:00
America/Danmarkshavn	+00:00
America/Dawson	-07:00
America/Dawson_Creek	-07:00
America/Denver	-06:00
America/Detroit	-04:00
America/Dominica	-04:00
America/Edmonton	-06:00
America/Eirunepe	-05:00
America/El_Salvador	-06:00
America/Fort_Nelson	-07:00
America/Fortaleza	-03:00
America/Glace_Bay	-03:00
America/Goose_Bay	-03:00
America/Grand_Turk	-04:00
America/Grenada	-04:00
America/Guadeloupe	-04:00
America/Guatemala	-06:00
America/Guayaquil	-05:00
America/Guyana	-04:00
America/Halifax	-03:00
America/Havana	-04:00
America/Hermosillo	-07:00
America/Indiana/Indianapolis	-04:00
America/Indiana/Knox	-05:00
America/Indiana/Marengo	-04:00
America/Indiana/Petersburg	-04:00
America/Indiana/Tell_City	-05:00
America/Indiana/Vevay	-04:00
America/Indiana/Vincennes	-04:00
America/Indiana/Winamac	-04:00
America/Inuvik	-06:00
America/Iqaluit	-04:00
America/Jamaica	-05:00
America/Juneau	-08:00
America/Kentucky/Louisville	-04:00
America/Kentucky/Monticello	-04:00
America/Kralendijk	-04:00
America/La_Paz	-04:00
America/Lima	-05:00
America/Los_Angeles	-07:00
America/Lower_Princes	-04:00
America/Maceio	-03:00
America/Managua	-06:00
America/Manaus	-04:00
America/Marigot	-04:00
America/Martinique	-04:00
America/Matamoros	-05:00
America/Mazatlan	-06:00
America/Menominee	-05:00
America/Merida	-05:00
America/Metlakatla	-08:00
America/Mexico_City	-05:00
America/Miquelon	-02:00
America/Moncton	-03:00
America/Monterrey	-05:00
America/Montevideo	-03:00
America/Montserrat	-04:00
America/Nassau	-04:00
America/New_York	-04:00
America/Nipigon	-04:00
America/Nome	-08:00
America/Noronha	-02:00
America/North_Dakota/Beulah	-05:00
America/North_Dakota/Center	-05:00
America/North_Dakota/New_Salem	-05:00
America/Nuuk	-02:00
America/Ojinaga	-06:00
America/Panama	-05:00
America/Pangnirtung	-04:00
America/Paramaribo	-03:00
America/Phoenix	-07:00
America/Port-au-Prince	-04:00
America/Port_of_Spain	-04:00
America/Porto_Velho	-04:00
America/Puerto_Rico	-04:00
America/Punta_Arenas	-03:00
America/Rainy_River	-05:00
America/Rankin_Inlet	-05:00
America/Recife	-03:00
America/Regina	-06:00
America/Resolute	-05:00
America/Rio_Branco	-05:00
America/Santarem	-03:00
America/Santiago	-04:00
America/Santo_Domingo	-04:00
America/Sao_Paulo	-03:00
America/Scoresbysund	+00:00
America/Sitka	-08:00
America/St_Barthelemy	-04:00
America/St_Johns	-02:30
America/St_Kitts	-04:00
America/St_Lucia	-04:00
America/St_Thomas	-04:00
America/St_Vincent	-04:00
America/Swift_Current	-06:00
America/Tegucigalpa	-06:00
America/Thule	-03:00
America/Thunder_Bay	-04:00
America/Tijuana	-07:00
America/Toronto	-04:00
America/Tortola	-04:00
America/Vancouver	-07:00
America/Whitehorse	-07:00
America/Winnipeg	-05:00
America/Yakutat	-08:00
America/Yellowknife	-06:00
Antarctica/Casey	+08:00
Antarctica/Davis	+07:00
Antarctica/DumontDUrville	+10:00
Antarctica/Macquarie	+11:00
Antarctica/Mawson	+05:00
Antarctica/McMurdo	+12:00
Antarctica/Palmer	-03:00
Antarctica/Rothera	-03:00
Antarctica/Syowa	+03:00
Antarctica/Troll	+02:00
Antarctica/Vostok	+06:00
Arctic/Longyearbyen	+02:00
Asia/Aden	+03:00
Asia/Almaty	+06:00
Asia/Amman	+03:00
Asia/Anadyr	+12:00
Asia/Aqtau	+05:00
Asia/Aqtobe	+05:00
Asia/Ashgabat	+05:00
Asia/Atyrau	+05:00
Asia/Baghdad	+03:00
Asia/Bahrain	+03:00
Asia/Baku	+04:00
Asia/Bangkok	+07:00
Asia/Barnaul	+07:00
Asia/Beirut	+03:00
Asia/Bishkek	+06:00
Asia/Brunei	+08:00
Asia/Chita	+09:00
Asia/Choibalsan	+08:00
Asia/Colombo	+05:30
Asia/Damascus	+03:00
Asia/Dhaka	+06:00
Asia/Dili	+09:00
Asia/Dubai	+04:00
Asia/Dushanbe	+05:00
Asia/Famagusta	+03:00
Asia/Gaza	+03:00
Asia/Hebron	+03:00
Asia/Ho_Chi_Minh	+07:00
Asia/Hong_Kong	+08:00
Asia/Hovd	+07:00
Asia/Irkutsk	+08:00
Asia/Jakarta	+07:00
Asia/Jayapura	+09:00
Asia/Jerusalem	+03:00
Asia/Kabul	+04:30
Asia/Kamchatka	+12:00
Asia/Karachi	+05:00
Asia/Kathmandu	+05:45
Asia/Khandyga	+09:00
Asia/Kolkata	+05:30
Asia/Krasnoyarsk	+07:00
Asia/Kuala_Lumpur	+08:00
Asia/Kuching	+08:00
Asia/Kuwait	+03:00
Asia/Macau	+08:00
Asia/Magadan	+11:00
Asia/Makassar	+08:00
Asia/Manila	+08:00
Asia/Muscat	+04:00
Asia/Nicosia	+03:00
Asia/Novokuznetsk	+07:00
Asia/Novosibirsk	+07:00
Asia/Omsk	+06:00
Asia/Oral	+05:00
Asia/Phnom_Penh	+07:00
Asia/Pontianak	+07:00
Asia/Pyongyang	+09:00
Asia/Qatar	+03:00
Asia/Qostanay	+06:00
Asia/Qyzylorda	+05:00
Asia/Riyadh	+03:00
Asia/Sakhalin	+11:00
Asia/Samarkand	+05:00
Asia/Seoul	+09:00
Asia/Shanghai	+08:00
Asia/Singapore	+08:00
Asia/Srednekolymsk	+11:00
Asia/Taipei	+08:00
Asia/Tashkent	+05:00
Asia/Tbilisi	+04:00
Asia/Tehran	+04:30
Asia/Thimphu	+06:00
Asia/Tokyo	+09:00
Asia/Tomsk	+07:00
Asia/Ulaanbaatar	+08:00
Asia/Urumqi	+06:00
Asia/Ust-Nera	+10:00
Asia/Vientiane	+07:00
Asia/Vladivostok	+10:00
Asia/Yakutsk	+09:00
Asia/Yangon	+06:30
Asia/Yekaterinburg	+05:00
Asia/Yerevan	+04:00
Atlantic/Azores	+00:00
Atlantic/Bermuda	-03:00
Atlantic/Canary	+01:00
Atlantic/Cape_Verde	-01:00
Atlantic/Faroe	+01:00
Atlantic/Madeira	+01:00
Atlantic/Reykjavik	+00:00
Atlantic/South_Georgia	-02:00
Atlantic/St_Helena	+00:00
Atlantic/Stanley	-03:00
Australia/Adelaide	+09:30
Australia/Brisbane	+10:00
Australia/Broken_Hill	+09:30
Australia/Currie	+10:00
Australia/Darwin	+09:30
Australia/Eucla	+08:45
Australia/Hobart	+10:00
Australia/Lindeman	+10:00
Australia/Lord_Howe	+10:30
Australia/Melbourne	+10:00
Australia/Perth	+08:00
Australia/Sydney	+10:00
Europe/Amsterdam	+02:00
Europe/Andorra	+02:00
Europe/Astrakhan	+04:00
Europe/Athens	+03:00
Europe/Belgrade	+02:00
Europe/Berlin	+02:00
Europe/Bratislava	+02:00
Europe/Brussels	+02:00
Europe/Bucharest	+03:00
Europe/Budapest	+02:00
Europe/Busingen	+02:00
Europe/Chisinau	+03:00
Europe/Copenhagen	+02:00
Europe/Dublin	+01:00
Europe/Gibraltar	+02:00
Europe/Guernsey	+01:00
Europe/Helsinki	+03:00
Europe/Isle_of_Man	+01:00
Europe/Istanbul	+03:00
Europe/Jersey	+01:00
Europe/Kaliningrad	+02:00
Europe/Kiev	+03:00
Europe/Kirov	+03:00
Europe/Lisbon	+01:00
Europe/Ljubljana	+02:00
Europe/London	+01:00
Europe/Luxembourg	+02:00
Europe/Madrid	+02:00
Europe/Malta	+02:00
Europe/Mariehamn	+03:00
Europe/Minsk	+03:00
Europe/Monaco	+02:00
Europe/Moscow	+03:00
Europe/Oslo	+02:00
Europe/Paris	+02:00
Europe/Podgorica	+02:00
Europe/Prague	+02:00
Europe/Riga	+03:00
Europe/Rome	+02:00
Europe/Samara	+04:00
Europe/San_Marino	+02:00
Europe/Sarajevo	+02:00
Europe/Saratov	+04:00
Europe/Simferopol	+03:00
Europe/Skopje	+02:00
Europe/Sofia	+03:00
Europe/Stockholm	+02:00
Europe/Tallinn	+03:00
Europe/Tirane	+02:00
Europe/Ulyanovsk	+04:00
Europe/Uzhgorod	+03:00
Europe/Vaduz	+02:00
Europe/Vatican	+02:00
Europe/Vienna	+02:00
Europe/Vilnius	+03:00
Europe/Volgograd	+04:00
Europe/Warsaw	+02:00
Europe/Zagreb	+02:00
Europe/Zaporozhye	+03:00
Europe/Zurich	+02:00
Indian/Antananarivo	+03:00
Indian/Chagos	+06:00
Indian/Christmas	+07:00
Indian/Cocos	+06:30
Indian/Comoro	+03:00
Indian/Kerguelen	+05:00
Indian/Mahe	+04:00
Indian/Maldives	+05:00
Indian/Mauritius	+04:00
Indian/Mayotte	+03:00
Indian/Reunion	+04:00
Pacific/Apia	+13:00
Pacific/Auckland	+12:00
Pacific/Bougainville	+11:00
Pacific/Chatham	+12:45
Pacific/Chuuk	+10:00
Pacific/Easter	-06:00
Pacific/Efate	+11:00
Pacific/Enderbury	+13:00
Pacific/Fakaofo	+13:00
Pacific/Fiji	+12:00
Pacific/Funafuti	+12:00
Pacific/Galapagos	-06:00
Pacific/Gambier	-09:00
Pacific/Guadalcanal	+11:00
Pacific/Guam	+10:00
Pacific/Honolulu	-10:00
Pacific/Kiritimati	+14:00
Pacific/Kosrae	+11:00
Pacific/Kwajalein	+12:00
Pacific/Majuro	+12:00
Pacific/Marquesas	-09:30
Pacific/Midway	-11:00
Pacific/Nauru	+12:00
Pacific/Niue	-11:00
Pacific/Norfolk	+11:00
Pacific/Noumea	+11:00
Pacific/Pago_Pago	-11:00
Pacific/Palau	+09:00
Pacific/Pitcairn	-08:00
Pacific/Pohnpei	+11:00
Pacific/Port_Moresby	+10:00
Pacific/Rarotonga	-10:00
Pacific/Saipan	+10:00
Pacific/Tahiti	-10:00
Pacific/Tarawa	+12:00
Pacific/Tongatapu	+13:00
Pacific/Wake	+12:00
Pacific/Wallis	+12:00
UTC	+00:00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值