【发布时间】:2014-07-10 19:46:10
【问题描述】:
我有两个moment 日期:
var fromDate = moment(new Date('1/1/2014'));
var toDate = moment(new Date('6/1/2014'));
moment 是否提供了一种方法来枚举这两个日期之间的所有日期?
如果没有,除了创建一个循环将fromDate 递增1 直到到达toDate 之外,还有什么更好的解决方案吗?
编辑:添加日期枚举方法及问题
我已经模拟了一种方法来枚举两个日期之间的天数,但我遇到了一个问题。
var enumerateDaysBetweenDates = function(startDate, endDate) {
var dates = [];
startDate = startDate.add(1, 'days');
while(startDate.format('M/D/YYYY') !== endDate.format('M/D/YYYY')) {
console.log(startDate.toDate());
dates.push(startDate.toDate());
startDate = startDate.add(1, 'days');
}
return dates;
};
看看我运行enumerateDaysBetweenDates( moment(new Date('1/1/2014')), moment(new Date('1/5/2014'));时的输出
Thu Jan 02 2014 00:00:00 GMT-0800 (PST)
Fri Jan 03 2014 00:00:00 GMT-0800 (PST)
Sat Jan 04 2014 00:00:00 GMT-0800 (PST)
[ Sun Jan 05 2014 00:00:00 GMT-0800 (PST),
Sun Jan 05 2014 00:00:00 GMT-0800 (PST),
Sun Jan 05 2014 00:00:00 GMT-0800 (PST) ]
这是 console.logging 正确的日期,但只有最后一个日期被添加到数组中。这是怎么/为什么?这闻起来像是某种变量引用问题 - 但我没有看到它。
【问题讨论】:
标签: javascript momentjs