ホームページ >ウェブフロントエンド >jsチュートリアル >UTC 時刻文字列を変換するときに、Chrome と Firefox で `new Date()` の動作が異なるのはなぜですか?

UTC 時刻文字列を変換するときに、Chrome と Firefox で `new Date()` の動作が異なるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-26 02:51:02690ブラウズ

Why does `new Date()` behave differently in Chrome and Firefox when converting UTC time strings?

Chrome と Firefox の間の new Date() の動作の不一致を理解する

new Date( を使用して日付文字列を Date オブジェクトに変換する場合)、Chrome と Firefox の間には微妙な違いが生じます。この動作は、特に UTC 時刻文字列を使用する場合に混乱を招く可能性があります。

質問で提供されているコード var date = new Date('2013-02-27T17:00:00'); は、日付を作成します。 UTC 形式の日付文字列からオブジェクトを取得します。ただし、結果は 2 つのブラウザ間で異なります。

  • Firefox: 予想される UTC 時間より 1 日遅れた日付を返します。
  • Chrome: 正しい UTC 時刻を返します。

不一致の原因

この違いは、日付文字列の解釈に起因します。 Firefox は文字列をブラウザのタイムゾーンの現地時間として解釈しますが、Chrome は文字列を UTC として解釈します。その結果、Firefox はブラウザのタイムゾーン オフセットを日付に追加し、UTC から 1 日遅れて表示されます。

解決策

この不一致を解決して取得するにはどちらのブラウザでも正しい UTC 時間を実現するには、UTC 日付文字列の適切な形式に従うことが重要です。正しい形式は次のとおりです:

YYYY-MM-DDTHH:mm:ssZ

ここで:

  • YYYY-MM-DD は年、月、日を表します。
  • HH:mm:ss
  • Z はズールー時間インジケーターを表します。

日付文字列の末尾に「Z」インジケーターを追加すると、ブラウザーは正しく解釈します。 UTC 時間として表示されます。

更新されたコード:

<code class="javascript">var date = new Date('2013-02-27T17:00:00Z'); // Appends 'Z' to indicate UTC
alert(date);</code>

この更新されたコードにより、Firefox と Chrome の両方で同じ正しい UTC 日付オブジェクトが生成されるようになります。

以上がUTC 時刻文字列を変換するときに、Chrome と Firefox で `new Date()` の動作が異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。