2017-02-15 4 views
0

日付値に日数を追加しようとすると、奇妙な出力が表示されます。Javascript setdate getDate()+ 28は悪いを返します

startdate = "Date 2017-03-15T00:00:00.000Z" 

startdate28 = 1489536000000 

var startdate = $("#JobStartDate").val(); 

startdate = new Date(startdate); 
startdate28 = startdate.setDate(startdate.getDate()+28); 

console.log(startdate); 
console.log(startdate28); 

結果

私が間違っているつもり任意のアイデア?そのような

+0

'startdate.getDate()+ 28'は、ミリ秒を返しsetDate''、具体的には、ミリ秒単位であなたに+ 28 – Weedoze

+1

を時間を取得しますが、また、日付*を設定します* – adeneo

+0

['setDate()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate)は、基礎となる日付オブジェクトを変更しますそして、01.01.1970 UTC – Andreas

答えて

0

var startdate = $("#JobStartDate").val(); 

startdate = new Date(startdate); 
startdate28 = new Date(); 
startdate28.setDate(startdate.getDate()+28); 

console.log(startdate); 
console.log(startdate28); 
0

は、次のコードスニペットを見てください:あなたはそれとして私たちにsetDatesetTime inteadを必要とする通告が発生することがあり

var startdate = "2017-02-15"; 
 

 
startdate = new Date(startdate); 
 
startdate28 = new Date(); 
 
startdate28.setTime(startdate.getTime() + 28 * 86400000); 
 

 
console.log(startdate); 
 
console.log(startdate28);

月または年が日を追加する前のものと同じでないときのエラー。

結果は次のようになります

"2017-02-15T00:00:00.000Z"

"2017-03-15T00:00:00.000Z" の

0

この行は次のとおりです。startdate28 = startdate.setDate(startdate.getDate()+ 28); "startdate.setDate"から返されるものを "startdate28"の中に格納し、この関数は調整された日付のタイムスタンプを返します。

何ができることは、他の日のための新しい日付オブジェクトを作成することです:

var startdate = '2016-01-01'; 

startdate = new Date(startdate); 
startdate28 = new Date(startdate.setDate(startdate.getDate()+28)); 

console.log(startdate); 
console.log(startdate28); 
0

方法Date.getDate()は整数になります。したがって、整数+28は依然として整数であり、Date型ではありません。あなたが行くここ

var startdate; 
startdate = new Date("2017-03-15T00:00:00.000Z"); 
startdate28 = new Date(); 
startdate28.setDate(startdate.getDate()+28); 
console.log(startdate); 
console.log(startdate28); 
0

:試してみてください

addDays = function(days) { 
    var startdate = new Date(this.valueOf()); 
    startdate.setDate(startdate.getDate() + days); 
    return startdate; 
} 

var startdate= new Date(); 

alert(dat.addDays(5)) 
関連する問題