苦労する理由は、どのタイムゾーン文字列がどの国に対応するのかがさっぱりわからないからだ。
特にアメリカが複雑でわかりにくい。
そこで、どのタイムゾーン文字列がどの地域に対応するのか、対照表を作成した。
※地理に詳しいわけではないので、いろいろと間違えていると思うので、要注意。
ここに挙げるのは、PHP でサポートするタイムゾーン文字列で、タイムゾーンの略記 (date 関数の 'T' で表示されるもの) と時刻のオフセットは、PHP を使って検証した。
標準時と夏時間は1月と7月で試した。
参考までに、検証に用いたコードを引用しておく。
<?php foreach (array('Asia/Baku', 'Asia/Kabul', 'Asia/Dubai', 'Asia/Yerevan', 'Asia/Aden', 'Asia/Jerusalem', : (省略) : ) as $tz) { putenv("TZ=$tz"); $result = array(); $t = gmmktime(12, 0, 0, 1, 2); /* 1月2日 12:00:00 */ $result[0] = array('T' => date('T', $t), 'D' => ((date('d', $t) - 2) * 24 + date('H', $t) + date('i', $t) / 60 - 12)); $t = gmmktime(12, 0, 0, 7, 2); /* 7月2日 12:00:00 */ $result[1] = array('T' => date('T', $t), 'D' => ((date('d', $t) - 2) * 24 + date('H', $t) + date('i', $t) / 60 - 12)); // 夏冬逆なら入れ替える if ($result[0]['D'] > $result[1]['D']) { $tmp = $result[0]; $result[0] = $result[1]; $result[1] = $tmp; } // 出力 echo implode("\t", array($tz, $result[0]['T'], $result[0]['D'], $result[1]['T'], $result[1]['D'])); echo "\n";}?>下の表の、「タイムゾーン文字列」の文字列を、putenv 関数を用いて TZ 環境変数に設定するなどして用いる。
※表が長くて一度に投稿できないので、分割投稿します。
●「アフリカ」
●「アメリカ・1」
●「アメリカ・2」
●「オーストラリア・北極・南極」
●「太平洋・大西洋・インド洋」
●「ヨーロッパ」
●アジア
| 地域名 | タイムゾーン文字列 | ||
|---|---|---|---|
| アゼルバイジャン / バクー Azerbaijan / Baku | Asia/Baku | +4 (AZT) | +5 (AZST) |
| アフガニスタン / カーブル Afghanistan / Kabul | Asia/Kabul | +4.5 (AFT) | |
| アラブ首長国連邦 / ドバイ United Arab Emirates / Dubai | Asia/Dubai | +4 (GST) | |
| アルメニア / エレバン Armenia / Yerevan | Asia/Yerevan | +4 (AMT) | +5 (AMST) |
| イエメン / アデン Yemen / Aden | Asia/Aden | +3 (AST) | |
| イスラエル / エルサレム Israel / Jerusalem | Asia/Jerusalem | +2 (IST) | +3 (IDT) |
| イスラエル / テルアビブ Israel / Tel Aviv | Asia/Tel_Aviv | +2 (IST) | +3 (IDT) |
| イスラエル Israel | Israel | +2 (IST) | +3 (IDT) |
| イラク / バグダード Iraq / Baghdad | Asia/Baghdad | +3 (AST) | +4 (ADT) |
| イラン / テヘラン州 / テヘラン Iran / Tehran / Tehran | Asia/Tehran | +3.5 (IRST) | +4.5 (IRDT) |
| イラン Iran | Iran | +3.5 (IRST) | +4.5 (IRDT) |
| インド / コルカタ India / Kolkata | Asia/Calcutta | +5.5 (IST) | |
| インドネシア / 西カリマンタン州 / ポンティアナック Indonesia / West Kalimantan / Pontianak | Asia/Pontianak | +7 (WIT) | |
| インドネシア / ジャカルタ Indonesia / Jakarta | Asia/Jakarta | +7 (WIT) | |
| インドネシア / 南スラウェシ州 / マカッサル Indonesia / South Sulawesi / Makassar | Asia/Makassar または Asia/Ujung_Pandang | +8 (CIT) | |
| インドネシア / パプア州 / ジャヤプラ Indonesia / Papua / Jayapura | Asia/Jayapura | +9 (EIT) | |
| ウズベキスタン / サマルカンド州 / サマルカンド Uzbekistan / Samarqand / Samarkand | Asia/Samarkand | +5 (UZT) | |
| ウズベキスタン / タシュケント州 / タシュケント Uzbekistan / Tashkent / Tashkent | Asia/Tashkent | +5 (UZT) | |
| オマーン / マスカット Oman / Muscat | Asia/Muscat | +4 (GST) | |
| カザフスタン / アクトベ州 / アクトベ Kazakhstan / Aqtöbe / Aqtöbe | Asia/Aqtobe | +5 (AQTT) | |
| カザフスタン / マンギスタウ州 / アクタウ Kazakhstan / Mangghystau / Aqtau | Asia/Aqtau | +5 (AQTT) | |
| カザフスタン / 西カザフスタン州 / オラル Kazakhstan / Batys Qazaqstan / Oral | Asia/Oral | +5 (ORAT) | |
| カザフスタン / アルマトイ州 / アルマトイ Kazakhstan / Almaty / Almaty | Asia/Almaty | +6 (ALMT) | |
| カザフスタン / クズロルダ州 / クズルオルダ Kazakhstan / Qyzylorda / Qyzylorda | Asia/Qyzylorda | +6 (QYZT) | |
| カタール Qatar | Asia/Qatar | +3 (AST) | |
| カンボジア / プノンペン Cambodia / Phnom Penh | Asia/Phnom_Penh | +7 (ICT) | |
| キプロス / ニコシア Cyprus / Nicosia | Asia/Nicosia | +2 (EET) | +3 (EEST) |
| キルギス / ビシュケク Kyrgyzstan / Bishkek | Asia/Bishkek | +6 (KGT) | |
| クアラルンプール / クアラルンプール Malaysia / Kuala Lumpur | Asia/Kuala_Lumpur | +8 (MYT) | |
| クウェート / クウェート Kuwait / Kuwait | Asia/Kuwait | +3 (AST) | |
| グルジア / トビリシ Georgia / Tbilisi | Asia/Tbilisi | +4 (GET) | |
| サウジアラビア / ナジュド地方 / リヤド Saudi Arabia / Najd / Riyadh | Asia/Riyadh | +3 (AST) | |
| シリア / ダマスカス Syria / Damascus | Asia/Damascus | +2 (EET) | +3 (EEST) |
| シンガポール / シンガポール Singapore / Singapore | Asia/Singapore または Singapore | +8 (SGT) | |
| スリランカ / コロンボ Sri Lanka / Colombo | Asia/Colombo | +6 (LKT) | |
| 台湾 / 台北 Taiwan / Taipei | Asia/Taipei | +8 (CST) | |
| 中華民国 Republic of China | ROC | +8 (CST) | |
| タイ王国 / バンコク Thailand / Bangkok | Asia/Bangkok | +7 (ICT) | |
| 大韓民国 / ソウル South Korea / Seoul | Asia/Seoul | +9 (KST) | |
| 大韓民国 South Korea | ROK | +9 (KST) | |
| タジキスタン / ドゥシャンベ Tajikistan / Dushanbe | Asia/Dushanbe | +5 (TJT) | |
| 中華人民共和国 / 黒竜江省 / ハルビン People's Republic of China / Heilongjiang / Harbin | Asia/Harbin | +8 (CST) | |
| 中華人民共和国 / 上海 People's Republic of China / Shanghai | Asia/Shanghai | +8 (CST) | |
| 中華人民共和国 / 新疆ウイグル自治区 / カシュガル People's Republic of China / Xinjiang Uyghur Autonomous Region / Kashgar | Asia/Kashgar | +8 (CST) | |
| 中華人民共和国 / 新疆ウイグル自治区 / ウルムチ People's Republic of China / Xinjiang Uyghur Autonomous Region / Ürümqi | Asia/Urumqi | +8 (CST) | |
| 中華人民共和国 / 重慶市 People's Republic of China / Chongqing | Asia/Chongqing または Asia/Chungking | +8 (CST) | |
| 中華人民共和国 / 香港 People's Republic of China / Hong Kong | Asia/Hong_Kong または Hongkong | +8 (HKT) | |
| 中華人民共和国 / マカオ People's Republic of China / Macau | Asia/Macao または Asia/Macau | +8 (CST) | |
| 中華人民共和国 People's Republic of China | PRC | +8 (CST) | |
| 朝鮮民主主義人民共和国 / 平壌 North Korea / Pyongyang | Asia/Pyongyang | +9 (KST) | |
| トルクメニスタン / アシガバート Turkmenistan / Ashgabat | Asia/Ashgabat または Asia/Ashkhabad | +5 (TMT) | |
| トルコ / イスタンブル Turkey / Istanbul | Asia/Istanbul | +2 (EET) | +3 (EEST) |
| トルコ Turkey | Turkey | +2 (EET) | +3 (EEST) |
| 日本 / 東京 Japan / Tokyo | Asia/Tokyo | +9 (JST) | |
| 日本 Japan | Japan | +9 (JST) | |
| ネパール / カトマンズ Nepal / Kathmandu | Asia/Katmandu | +5.75 (NPT) | |
| バーレーン Bahrain | Asia/Bahrain | +3 (AST) | |
| パキスタン / シンド州 / カラーチー Pakistan / Sindh / Karachi | Asia/Karachi | +5 (PKT) | |
| パレスチナ / ガザ Palestinian territories / Gaza | Asia/Gaza | +2 (EET) | +3 (EEST) |
| バングラデシュ / ダッカ Bangladesh / Dhaka | Asia/Dacca または Asia/Dhaka | +6 (BDT) | |
| 東ティモール / ディリ East Timor / Dili | Asia/Dili | +9 (TLT) | |
| フィリピン / マニラ Philippines / Manila | Asia/Manila | +8 (PHT) | |
| ブータン / ティンプー Bhutan / Thimphu | Asia/Thimbu または Asia/Thimphu | +6 (BTT) | |
| ブルネイ Brunei | Asia/Brunei | +8 (BNT) | |
| ベトナム / ホーチミン Vietnam / Ho Chi Minh City | Asia/Saigon | +7 (ICT) | |
| マレーシア / サラワク州 / クチン Malaysia / Sarawak / Kuching | Asia/Kuching | +8 (MYT) | |
| ミャンマー / ヤンゴン Myanmar / Yangon | Asia/Rangoon | +6.5 (MMT) | |
| モンゴル国 / ホブド Mongolia / Khovd | Asia/Hovd | +7 (HOVT) | +8 (HOVST) |
| モンゴル国 / ウランバートル Mongolia / Ulan Bator | Asia/Ulaanbaatar または Asia/Ulan_Bator | +8 (ULAT) | +9 (ULAST) |
| モンゴル国 / チョイバルサン Mongolia / Choibalsan | Asia/Choibalsan | +9 (CHOT) | +10 (CHOST) |
| ヨルダン / アンマン Jordan / Amman | Asia/Amman | +2 (EET) | +3 (EEST) |
| ラオス / ヴィエンチャン Laos / Vientiane | Asia/Vientiane | +7 (ICT) | |
| レバノン / ベイルート県 / ベイルート Lebanon / Beirut / Beirut | Asia/Beirut | +2 (EET) | +3 (EEST) |
| ロシア / ウラル連邦管区 / エカテリンブルク Russia / Urals Federal District / Yekaterinburg | Asia/Yekaterinburg | +5 (YEKT) | +6 (YEKST) |
| ロシア / シベリア連邦管区 / ノヴォシビルスク Russia / Siberian Federal District / Novosibirsk | Asia/Novosibirsk | +6 (NOVT) | +7 (NOVST) |
| ロシア / シベリア連邦管区 / オムスク Russia / Siberian Federal District / Omsk | Asia/Omsk | +6 (OMST) | +7 (OMSST) |
| ロシア / シベリア連邦管区 / クラスノヤルスク Russia / Siberian Federal District / Krasnoyarsk | Asia/Krasnoyarsk | +7 (KRAT) | +8 (KRAST) |
| ロシア / シベリア連邦管区 / イルクーツク Russia / Siberian Federal District / Irkutsk | Asia/Irkutsk | +8 (IRKT) | +9 (IRKST) |
| ロシア / 極東連邦管区 / ヤクーツク Russia / Far Eastern Federal District / Yakutsk | Asia/Yakutsk | +9 (YAKT) | +10 (YAKST) |
| ロシア / 極東連邦管区 / ウラジオストク Russia / Far Eastern Federal District / Vladivostok | Asia/Vladivostok | +10 (VLAT) | +11 (VLAST) |
| ロシア / 極東連邦管区 / サハリン州 Russia / Far Eastern Federal District / Sakhalin | Asia/Sakhalin | +10 (SAKT) | +11 (SAKST) |
| ロシア / 極東連邦管区 / マガダン Russia / Far Eastern Federal District / Magadan | Asia/Magadan | +11 (MAGT) | +12 (MAGST) |
| ロシア / 極東連邦管区 / アナディル Russia / Far Eastern Federal District / Anadyr | Asia/Anadyr | +12 (ANAT) | +13 (ANAST) |
| ロシア / 極東連邦管区 / カムチャツカ半島 Russia / Far Eastern Federal District / Kamchatka Peninsula | Asia/Kamchatka | +12 (PETT) | +13 (PETST) |
【タイムゾーンがらみの記事】
「date関数で”Asia/Tokyo・・”なんかのエラーが出る件:PHP5.1.0以降」
http://www.res-system.com/weblog/item/563

