ホームページ > 記事 > ウェブフロントエンド > UTC 時刻文字列を変換するときに、Chrome と Firefox で `new Date()` の動作が異なるのはなぜですか?
Chrome と Firefox の間の new Date() の動作の不一致を理解する
new Date( を使用して日付文字列を Date オブジェクトに変換する場合)、Chrome と Firefox の間には微妙な違いが生じます。この動作は、特に UTC 時刻文字列を使用する場合に混乱を招く可能性があります。
質問で提供されているコード var date = new Date('2013-02-27T17:00:00'); は、日付を作成します。 UTC 形式の日付文字列からオブジェクトを取得します。ただし、結果は 2 つのブラウザ間で異なります。
不一致の原因
この違いは、日付文字列の解釈に起因します。 Firefox は文字列をブラウザのタイムゾーンの現地時間として解釈しますが、Chrome は文字列を UTC として解釈します。その結果、Firefox はブラウザのタイムゾーン オフセットを日付に追加し、UTC から 1 日遅れて表示されます。
解決策
この不一致を解決して取得するにはどちらのブラウザでも正しい UTC 時間を実現するには、UTC 日付文字列の適切な形式に従うことが重要です。正しい形式は次のとおりです:
YYYY-MM-DDTHH:mm:ssZ
ここで:
日付文字列の末尾に「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 サイトの他の関連記事を参照してください。