2013-11-26 53 views
0

我想通過添加'staysForFor'天數格式化的'dateObj'返回一個日期格式ie(12-5-2013)到變量'returningOn'以相同的格式。添加日期以輸入日期與奇怪的控制檯日誌結果

但我似乎越來越奇怪的價值觀,當我做一些console.logs。爲什麼是這樣?另外,什麼日期格式是最後一個變量?

var leavingOn = $('#leavingOn') != 'undefined' ? $('#leavingOn').val() : '12-7-2013'; 
var stayingFor = $('#stayingFor') != 'undefined' ? $('#stayingFor').val() : 7 ; 
var splitDate = leavingOn.split('-'); 
var dateObj = new Date(Number(splitDate[0]), Number(splitDate[1]) -1, Number(splitDate[2])); 
var returningOn = dateObj.setDate(dateObj.getDate() + stayingFor); 

console.log(splitDate); // ["2013", "11", "14"] 
console.log(leavingOn); // 2013-11-14 
console.log(stayingFor); // 7 
console.log(dateObj); // Fri Jul 25 2014 22:00:07 GMT+0100 (GMT Daylight Time) 
console.log(returningOn); // 1406322007249 

回答

1

我認爲staysForFor變量需要轉換爲整數。嘗試:

staysFor = parseInt(stayingFor);

+0

感謝repsonse。現在我改變了上面的第四行console.log,現在是'Sun Jun 26 1932 00:00:00 GMT + 0100(GMT Daylight Time)'。任何想法爲什麼?我可能會在一天內錯過明顯的12小時編碼。 – lxm7

+0

我改變了這個YYYY-MM-DD格式的第一行第四個值,儘管這並沒有被選作默認值,但是在我的腳本中使用'new Date()。toJSON()。slice(0, 10)' – lxm7

+0

我認爲staysFor的變量需要轉換爲整數。試試:stayingFor = parseInt(stayingFor)。奇怪的日期出現了,因爲字符串值,而不是一個整數,被添加,因此給出意想不到的結果。 –