2016-04-18 1 views
3

私はnew Date()で日付を作成しています。私がこれをするとき、それは1日を引いている。コードは次のとおりです。新しい日付()が1日を削除するのはなぜですか? - Javascript

var dateString = "2016-04-10"; 
var date = new Date(dateString); 

// date = Sat Apr 09 2016 18:00:00 GMT-0600 (MDT) 

私は何を誤解していますか?なぜ日付はApr 10 2016ではないのですか?この作業を適切に行うにはどうすればよいですか?

+0

「新しい日付(2016,4,10);」 – BenG

+1

あなたが持っている日付は* 2016年4月10日の真夜中(0:00)ですか? – Bergi

+0

私は上記の方法でフォーマットされた日付を受け取っています。私はそのフォーマットを動作させる必要がありますか?それを実現させる方法はありますか? – jhamm

答えて

9

あなたのタイムゾーンはGMT-6です(提供した出力のGMT-0600 (MDT)によって明らかにされています)。したがって、生成される日付は-6時間だけオフセットされます。この場合、深夜からマイナス6時間は前日の午後6時です。

date.toISOString()に電話すると、UTCの時刻が予想通りに"2016-04-10T00:00:00.000Z"であることがわかります。

+0

ECMAScript 2015の日付文字列の解析の不一致を認識している場合にのみ、「期待通りに」表示されます。 – RobG

関連する問題