1

これは私のコードです:

var dat = new Date("24/03/2013");
dat.setDate(dat.getDate() + 7);
console.log(dat)

しかし、それは印刷しTue Jan 06 2015 00:00:00 GMT+0100ますか?

日付が間違っています。2013年3月31日である必要があります(この形式で印刷したいと思います)。

4

5 に答える 5

3

私のブラウザ(Chrome)は「無効な日付」を出力しますが、どうやらあなたのブラウザは初期化日付を dd/mm/yyyy ではなく mm/dd/yyyy 形式で解釈しているようです。したがって、2013 年の 24 番目の月の 3 日、つまり 2015 年 1 月 3 日であると見なされます。

7 日を追加すると、なぜ 1 月 6 日と表示されるのかわかりません。

最も安全な方法は、数値を明示的に指定することです。

var dat = new Date( 2013, 2, 24 );
于 2013-03-19T09:38:58.403 に答える
1

日付の形式を変更して、月の次の日を入れます

var dat = new Date("03/24/2013");
dat.setDate(dat.getDate() + 7);
console.log(dat)

私にとって、これは次を返します:

Sun Mar 31 2013 00:00:00 GMT+0000 (GMT Standard Time) 
于 2013-03-19T09:38:00.140 に答える
1

最初に月番号を指定する必要があります。そうすれば正しい答えが得られる

このコードを試してください

var dat = new Date("03/24/2013");
dat.setDate(dat.getDate() + 7);
var curr_date = dat.getDate();
var curr_month = dat.getMonth() + 1; //Months are zero based
var curr_year = dat.getFullYear();
console.log(curr_date + "/" + curr_month + "/" + curr_year);
于 2013-03-19T09:49:32.400 に答える
0

7を追加する前に、日付を印刷する必要があります。2013年の24か月目の3日目に設定されているのではないかと思います。これは、2015年1月に近いところに相当します。

そのため、現在の日付よりもかなり進んだ日付を取得しています。なぜ10日ではなく1月6日になるのわかりませんが、入力文字列をUS形式に変更するか、誤解されないより明示的なコンストラクターを使用するだけで修正できる可能性があります。:mm/dd/yyyy

var d = new Date(year, month, day, hours, minutes, seconds, milliseconds);
于 2013-03-19T09:33:25.590 に答える
0

これを試して!!!

var aDate = new Date(2013,3,24);
        aDate.setDate(aDate.getDate() + 7); 
        var dateString = aDate.getDate() + "-" + aDate.getMonth() + "-" + aDate.getFullYear(); 
        alert(dateString); 
于 2013-03-19T09:44:31.740 に答える