ホームページ > ウェブフロントエンド > jsチュートリアル > Chrome と Firefox で「new Date(\'YYYY-MM-DDTHH:MM:SS\')」の結果が異なるのはなぜですか?

Chrome と Firefox で「new Date(\'YYYY-MM-DDTHH:MM:SS\')」の結果が異なるのはなぜですか?

Susan Sarandon
リリース: 2024-10-27 01:49:30
オリジナル
329 人が閲覧しました

Why Does `new Date('YYYY-MM-DDTHH:MM:SS')` Produce Different Results in Chrome and Firefox?

日付オブジェクト作成のブラウザー間互換性

JavaScript を使用して日付文字列を Date オブジェクトに解析する場合、ブラウザーごとに差異が生じます。 Chrome や Firefox など。この不一致は、new Date() コンストラクターを使用して「YYYY-MM-DDTHH:MM:SS」形式の日付文字列を解析するときに明らかになります。

提供されたコード スニペット内:

<code class="js">var date = new Date('2013-02-27T17:00:00');</code>
ログイン後にコピー

Firefox は入力文字列を現地時間として解釈し、現地のタイムゾーン オフセット (GMT 0700) を追加します。この結果、日付は意図した UTC 時間より 1 日早くなり、次の結果が得られます:

Wed Feb 27 2013 17:00:00 GMT+0700 (SE Asia Standard Time)
ログイン後にコピー

逆に、Chrome は文字列を UTC 時間として正しく解析し、期待される結果を返します:

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
ログイン後にコピー
ログイン後にコピー

解決策

ブラウザ間で一貫した動作を保証するには、日付文字列に「Z」を追加して UTC 時間を明示的に示します。 UTC の正しい形式は 'YYYY-MM-DDTHH:MM:SSZ' です。

<code class="js">var date = new Date('2013-02-27T17:00:00Z');</code>
ログイン後にコピー

この変更により不一致が解決され、Chrome と Firefox の両方で同じ結果が生成され、元の UTC 時間が反映されます。 :

Thu Feb 28 2013 00:00:00 GMT+0700 (SE Asia Standard Time)
ログイン後にコピー
ログイン後にコピー

以上がChrome と Firefox で「new Date(\'YYYY-MM-DDTHH:MM:SS\')」の結果が異なるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート