У меня есть два моментных дата:
var fromDate = moment(new Date('1/1/2014'));
var toDate = moment(new Date('6/1/2014'));
Предоставляет ли момент способ перечислить все даты между этими двумя датами?
Если нет, есть ли лучшее решение, кроме создания цикла, который увеличивает 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 правильные даты, но только окончательная дата добавляется в массив. Как/почему это? Это пахнет чем-то вроде ссылки на переменную - но я этого не вижу.