2017-10-22 16 views
0

私はJavascript Dateで作業していて、奇妙な問題に直面していました。Javascript日付作業奇妙

date1 = new Date(1970, 1, 1); 
date2 = new Date("1970-01-01T13:00:00.000Z"); 
console.log(date1.getYear()); //70 
console.log(date1.getMonth()); //1 
console.log(date1.getDay()); //0 expect 1 
console.log(date2.getYear()); //70 
console.log(date2.getMonth()); //0 expect 1 
console.log(date2.getDay()); //4 expect 1 

なぜこのような結果が生じましたか?私はDateオブジェクトで間違っていますか?
FIDDLE

UPDATE:

console.log(date1); 

はこの結果を示しています。 new Date(year, month, date)

Date 1970-01-31T14:00:00.000Z 

答えて

3

、月は0ベースされているので、1は1月ではなくfebruaryので、あなたのdate1date2は異なる日付です。次に、関数getDayは月曜日から日曜日に対応する0から6を返します。日付が必要な場合は、代わりにgetDateを使用する必要があります。

+0

あなたが正しいです、あなたはUPDATEの質問についてもっと答えることができますか? –

+0

新しい日付は現地時間を使用します。だから、あなたは1970-02-01を指しているでしょうが、現地時間GMTマイナスなので、前日の1970年1月31日を参照してください。私のコンピュータでは、GMT +1のように1970-02-01が表示されます。日付のドキュメントとDate.UTC関数を確認してください。日付はかなり複雑です...私もあなたにチェックすることをお勧めします:https://www.youtube.com/watch?v=-5wpm-gesOY –

+0

ありがとう私は、素晴らしい –

関連する問題