循环中的JS setDate()

时间:2013-08-26 15:43:27

标签: javascript date loops

我希望在接下来的两周内每天调用一个函数,并传递日期和月份等参数。我使用这个方法:startDate.setDate(startDate.getDate() + 1)我发现here但是在循环的前6个步骤后它变得混乱

var date = new Date,
    searchDate = new Date,
    period = 14;

for(i = 1; i <= period; i++){
    searchDate.setDate(date.getDate() + i);
    // someFunction(searchDate.getDate(), searchDate.getMonth());
}

console.log(i + ": " + searchDate)返回的内容:

1: Tue Aug 27 2013 17:38:04 GMT+0200
2: Wed Aug 28 2013 17:38:04 GMT+0200
3: Thu Aug 29 2013 17:38:04 GMT+0200
4: Fri Aug 30 2013 17:38:04 GMT+0200
5: Sat Aug 31 2013 17:38:04 GMT+0200
6: Sun Sep 01 2013 17:38:04 GMT+0200 // so far so good
7: Thu Oct 03 2013 17:38:04 GMT+0200 // and after a week it's suddenly October
8: Sun Nov 03 2013 17:38:04 GMT+0100
9: Thu Dec 05 2013 17:38:04 GMT+0100
10: Sun Jan 05 2014 17:38:04 GMT+0100
11: Thu Feb 06 2014 17:38:04 GMT+0100
12: Mon Mar 10 2014 17:38:04 GMT+0100
13: Tue Apr 08 2014 17:38:04 GMT+0200
14: Sat May 10 2014 17:38:04 GMT+0200

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

你想要的是:

searchDate.setTime(date.getTime() + (24 * 3600 * 1000 * i));

它为日期的内部值(时间戳)添加时间,而不是将其添加到当天。