を見ることができます。 PHPはIANA/Olsonタイムゾーンを使用します。詳細は、timezone tag wikiを参照してください。
PHP official documentationから、あなたはこれを試すことができます。
<?php
$timezones = DateTimeZone::listAbbreviations();
$cities = array();
foreach($timezones as $key => $zones)
{
foreach($zones as $id => $zone)
{
/**
* Only get timezones explicitely not part of "Others".
* @see http://www.php.net/manual/en/timezones.others.php
*/
if (preg_match('/^(America|Antartica|Arctic|Asia|Atlantic|Europe|Indian|Pacific)\//', $zone['timezone_id']))
$cities[$zone['timezone_id']][] = $key;
}
}
// For each city, have a comma separated list of all possible timezones for that city.
foreach($cities as $key => $value)
$cities[$key] = join(', ', $value);
// Only keep one city (the first and also most important) for each set of possibilities.
$cities = array_unique($cities);
// Sort by area/city name.
ksort($cities);
?>
ここでは、別のSOあなたが見ることができるという疑問、同様の答えがたくさんある:これのどれも助けていない場合はGenerating a drop down list of timezones with PHP
、あなたが試すことができますあなたのタイムゾーンにデータをconvert
に上のコード。たとえば、ACST(オーストラリア中央標準時)に変換するUTCの日付と時刻の文字列(2017-08-05 02:45)があるとします。
<?php
$utc_date = DateTime::createFromFormat(
'Y-m-d G:i',
'2017-08-05 02:45',
new DateTimeZone('UTC')
);
$acst_date = clone $utc_date; // we don't want PHP's default pass object by reference here
$acst_date->setTimeZone(new DateTimeZone('Australia/Yancowinna'));
echo 'UTC: ' . $utc_date->format('Y-m-d g:i A'); // UTC: 2017-08-05 02:45 AM
echo 'ACST: ' . $acst_date->format('Y-m-d g:i A'); // ACST: 2017-08-05 14:15 PM
希望すると助かります!
UPDATE:
From here、あなたがPHPに、WindowsのIDSのタイムゾーンを持っている:
AUS中央標準時、1、オーストラリア/ダーウィン AUS中央標準時、AU、オーストラリア/ダーウィン AUS東部標準時、1、オーストラリア/シドニー AUS東部標準時、オーストラリア、オーストラリア/オーストラリア オーストラリア東部標準時オーストラリア/オーストラリア
Pアレイ:
$timezonesArray =
['AUS Central Standard Time','1','Australia/Darwin',
'AUS Central Standard Time','AU','Australia/Darwin',
'AUS Eastern Standard Time','1','Australia/Sydney',
'AUS Eastern Standard Time','AU','Australia/Melbourne',
'AUS Eastern Standard Time','AU','Australia/Sydney',
'Afghanistan Standard Time','1','Asia/Kabul',
'Afghanistan Standard Time','AF','Asia/Kabul',,
'Alaskan Standard Time','1','America/Anchorage',
'Alaskan Standard Time','US','America/Anchorage',
'Alaskan Standard Time','US','America/Juneau',
'Alaskan Standard Time','US','America/Nome',
'Alaskan Standard Time','US','America/Sitka',
'Alaskan Standard Time','US','America/Yakutat'];
//... the array continues
、その後、あなたの希望の窓のID(配列位置[0])、検索またはものは何でもしたいとして、あなたのタイムゾーン(配列位置2)を変換する機能を行うことができます。
それは私が推測するよりエレガントな解決策ではありませんが、それは動作し、そのシンプルです。配列を検索し、必要なtranslation
をあるコード化から他のコード化に戻すことができます。
今、幸せなコーディングに役立つことを願っています!
を私が改善することができるように質問をdownvotingている者はコメントしてください同じ –
私はdownvoteしなかったが、質問/問題は何ですか? – Andreas
@アンドレアスすべてのタイムゾーンの 'AUS Central Standard Time 'のような' Australia/Darwin'フルネームのようなタイムゾーンを欲しい –