1

我知道这个问题已经被问过很多次了,但我仍然无法弄清楚。我正在尝试将 7 天添加到一天。

我在这里找到了一个例子

正如我所期望的那样,这有效并在日期上增加了一天:

 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 函数,这需要是日期而不是数组项。当我展开数组项时,该项嵌套在里面,所以项 [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". 

有人对我如何使它起作用有任何建议吗?谢谢!

4

1 回答 1

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]
于 2013-04-17T19:59:47.937 回答