2013-04-17 29 views
1

我知道這個問題已被多次詢問,但我仍然無法弄清楚。我正在嘗試添加7天到一天。Google Apps腳本:無法弄清楚如何在日期中添加7天

我發現了一個例子here:

這工作有一天增加了日期,我期望:

var d = new Date(dateRange[11]); 
d.setDate(d.getDate()+1); 

但是,當我嘗試做同樣的事情,我在日期一個數組(我會在最終迭代):

newDates[12] = new Date(newDates[11]); 
newDates[12].setDate(newDates[11].getDate()+7); 

我收到此錯誤信息:

TypeError: Cannot find function getDate in object Mon Jul 01 2013 00:00:00 GMT-0600 (MDT). 

當我調試時,數組中每個項目的類型是'數組'不是日期。在調試器中每個數組項目中的數據如下所示:[(new Date(1372658400000))]我假設要使用getDate函數,它需要是日期而不是數組項。當我展開數組項目時,項目嵌套在內部,所以item [12] [0]是一個日期。我必須以不同的方式引用它嗎?

此之後的推理,我嘗試這樣做:

newDates[12][0] = new Date(newDates[11][0]); 
newDates[12][0].setDate(newDates[11][0].getDate()+7); 

但在上面代碼的第一行,我得到這個錯誤:

TypeError: Cannot set property "0.0" of undefined to "(class)@1176d9d1". 

有沒有人對如何任何建議我可能會得到這個工作?謝謝!

回答

1

爲什麼不簡單地這樣?

newDates[12] = new Date(newDates[11][0]);// take the relevant part of [11] 
newDates[12].setDate(newDates[11][0].getDate()+7); // and make [12] a simple date object in the array 

出於好奇,這個數組來自哪裏?

,如果你想[12]具有相同的結構(在數組元素的數組),然後使用一箇中間變量:

var temp = new Date(newDates[11][0]);// take the relevant part of [11] 
temp.setDate(newDates[11][0].getDate()+7); // set date to desired value 
newDates[12].push([temp]);// add into [12] 
+0

謝謝!這就是我最終做的事情:'var temp = new Date(newDates [11] [0]); temp.setDate(newDates [11] [0] .getDate()+ 7); newDates [12] = new Array(temp);' – brl8

+0

回答你的問題:數組是我從電子表格範圍中抽取的日期數組。目的是爲了能夠添加未來的日期。 – brl8