0


0

ユーザーのロケールに基づいてタイムゾーンコード(BSTやGMTなど)を表示したいです。 ただし、各ブラウザではnew Date()。toLocaleString()とは異なる場所に配置されており、一部のブラウザ(Operaなど)ではまったく使用できません。

データベースまたはタイムゾーンコードの構造をタイムゾーンオフセットに対して取得することが解決策のように見えますが、複数の一致が存在する可能性があります(例: BST == GMT)そして私はそのようなリストさえ見つけることができません。

これはできないということですか?

1 Answer


1


あなたのコードのタイムゾーンの違いを手動で定義する必要があります。 GMT時間はUTC(ズールー)時間と異なるため、複雑です。 GMTには夏時間の変更が含まれていますが、UTCには夏時間がなく、その他の点では同じタイムゾーン表現です。

さらに混乱しているのは、すべての政治ゾーンがそれぞれのタイムゾーンを時間数の例によって異なると定義しているわけではないということです。 インドはUTC 5.5時間、アフガニスタンはUTC 4.5時間です。 これらの国々は夏時間を守っていないので、UTCでありGMTではないことに注意してください。 南西太平洋のいくつかの小さな島国は15分の時間で変化する可能性があります。

それからいくつかの政治的な時間帯定義は内部の区別を持っています。 アリゾナは通常、米国太平洋標準時(GMT - 8時間)であると見なされます。ただし、夏時間が守られないため、アリゾナは実際にはUTC - 8であるため、米国のマウンテンタイムゾーンになります。

このような混乱の中で、タイムゾーンには何百もの定義がありますが、そのいくつかは政治的境界が変わるにつれて変わります。 ユーザーがページを要求したときのUTC時間を表す既知の値を反映するように、サーバーからJavaScriptの定数を動的に調整して、ユーザーのクロック時間を使用するか、UTC時間に調整します。