ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript の日付オブジェクトが間違った日付を返すのはなぜですか?
JavaScript アプリケーションでは、保存される日付は特定の形式に従っています、「2011-09-24」。この値を使用して新しい Date オブジェクトを作成しようとすると、返される日付が常に 1 日ずれているという問題が発生しました。
この矛盾を詳しく調べるには、JS Date オブジェクトが文字列入力をどのように解釈するかを理解することが重要です。 Date オブジェクトは、さまざまな日付文字列形式を変換するときに特定の異常を示します。いくつかの例を見てみましょう:
文字列「2011-09-24」を使用して日付オブジェクトを作成すると、 Date オブジェクトは、これを 2011 年 9 月 23 日を表すタイムスタンプとして解釈します。 17:00:00 GMT-0400 (東部夏時間)。その結果、返される日付は予期した結果から 1 日ずれます。
ただし、文字列形式を「09-24-2011」に変更すると (月-日-年に切り替えると)、Date オブジェクトは正しくなります。解釈して 2011 年 9 月 24 日を返します。
もう 1 つの興味深い観察は、日付文字列でのハイフン (-) とスラッシュ (/) の使用の違いです。 「2011/09/24」の例で見られるように、区切り文字をスラッシュに変更すると、正確な日付が解析されます。
の場合時刻やタイムゾーンなどの追加情報を含む日付文字列には、若干異なる解析ルールが適用されます。たとえば、「2011-09-24T00:00:00」は依然として間違った日付になりますが、ハイフンをスラッシュに置き換えて時刻の部分を削除すると、望ましい結果が得られます。代替の日付構築方法
特定の日付文字列形式の解析で問題が発生した場合は、 Date コンストラクターに対して別のパラメーターのアプローチを利用することもできます。このメソッドを使用すると、提供された例に示すように、年、月、日、さらには時刻とタイムゾーンの引数を指定できます。わかりやすくするために、ここで示した例は、使用環境に応じて異なる動作を示す可能性があることに注意してください。現在のタイムゾーンと時刻。以上がJavascript の日付オブジェクトが間違った日付を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。