日付オブジェクト作成のブラウザー間互換性
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 サイトの他の関連記事を参照してください。