0

これはローカルユーザーのタイムゾーンとDSTを考慮していることは知っていnew Date().getTimezoneOffset()ますが、将来の任意の時間の現在の現地時間をたとえばTimbuktuで計算するにはどうすればよいですか?

4

3 に答える 3

3

JavaScript には、言語に組み込まれたタイムゾーン データベースがありません (仕様を熟読するとわかります)。代わりに、「ローカル時間」と「UTC 時間」の概念のみがあり、ローカル タイムゾーンは 1 つだけです。

タイムゾーン データベースを取得するためのブラウザ API がある可能性がありますが、私は聞いたことがありません。そのようなデータベースと連携するサードパーティのプロジェクトがいくつかあります。クイック検索でtimezone-js が見つかります。

于 2012-05-02T05:05:33.240 に答える
1

あなたが望むものをあなたに与えることができるアルゴリズムがあるとは思えません。世界の国々は、多くの場合、標準のタイム ゾーン規則に従わないことを選択します。さらに悪いことに、DST の切り替え日が異なります。

私がチェックするために考えることができる3つの情報源があります:

ボーイングの子会社である Jeppesen は、航空航法情報を全世界に提供する主な民間企業です。13 年前に退職したときに毎週更新されなくなった古い Jeppesen マニュアルを確認したところです。世界のすべての主要空港のタイム ゾーンと DST 変更の日付が表示されます。連絡先情報については、こちらをご覧ください。今では便利に電子的に入手できるようになっていると思いますが、Jeppesen は何も無料で提供していません。

ICAO、国際民間航空機関 (現在は国連の一部だと思います) はその情報を保持していると思いますが、DST データについてはよくわかりません。彼らのデータは、無料またはわずかな料金で利用できると思います。

IATA (国際航空運送協会) もそのデータを保持している可能性があります。

最後の 2 つの組織は、URL を知っていれば、そのデータを含む URL の単純な要求に好意的に応答する可能性があると思います。

また、国際線を運航している航空会社のディスパッチャーを把握できる場合は、その情報を利用できるようにする必要があります。

また、「航空会社のタイム ゾーンと dst データ」を Google で検索すると表示されるこの項目やその他の項目も確認してください。

于 2012-05-02T06:08:41.527 に答える
-1

簡単な部分は、タイムゾーンの説明です。日付からタイムゾーン*60* 60秒を減算し、新しいタイムゾーン* 60 * 60を日付に追加するだけで、デフォルト(+0)のタイムゾーンを見つけることができます。

次に、以下を使用して、必要な時間を作るだけです。

d = new Date(year, month, day, hours, minutes, seconds, milliseconds)
于 2012-05-02T04:09:39.480 に答える