获取开始日期和结束日期之间的日期数组

时间:2015-10-06 12:00:30

标签: javascript date sharepoint-2013

我在Javascript中编写的函数存在问题。我想在开始和结束之间获得一系列日期。

功能:

function getDateArray(startDate, endDate) {

    var dateArray = new Array(),
    currentDate = new Date(startDate),
    lastDay = new Date(endDate);
    while (currentDate <= lastDay) {
        if (!(currentDate.getUTCDay() === 0 || currentDate.getUTCDay() === 6)) {
            //currentDate.toUTCString(); //This line is redundant
            dateArray.push(currentDate);
        }
        currentDate.setDate(currentDate.getDate() + 1);
    }
    return dateArray;
}

每当我用两个日期调用此函数时,如:

开始日期= 2015年10月6日 和结束日期= 2015年12月10日

我得到了不想要的结果:

Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)
Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)
Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)
Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)
Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)
Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)
Tue Oct 13 2015 00:00:00 GMT+0200 (South Africa Standard Time)

如果有人可以向我强调这里有什么问题吗?

1 个答案:

答案 0 :(得分:1)

这是因为您每次都在推送对currentDate的引用(因为日期是复杂类型,它们是通过引用传递的)

只需替换它:

dateArray.push(currentDate);

由此:

dateArray.push(new Date(currentDate));