Я пытаюсь создать функцию, которая возвращает массив дат между двумя датами.Это мой код:
Date.prototype.addDays = function(days)
{
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
function getdaterange(startdate, enddate)
{
var s = new Date(startdate);
var e = new Date(enddate);
var datearray = [s];
var done = false;
while(!done)
{
var date = datearray.pop().addDays(1);
if (date == e)
{
datearray.push(date);
done = true;
}
}
}
getdaterange("2018-09-01", "2018-09-25");
Функция еще не завершена, но когда я пытаюсь манипулировать объектом даты в строке, которая устанавливает переменную "date", он возвращается как неопределенный или говорит, что.pop () не является методом Date.Я пробовал несколько разных конфигураций.(Где я изменяю то, как я манипулирую объектом даты. Например: определение переменной и последующий вызов метода .addDays ().)
Это только один из них.Кто-нибудь знает, что происходит?
Спасибо за любую помощь в продвинутом.
Спасибо за вашу помощь от комментариев.Отредактированный код:
Date.prototype.addDays = function(days)
{
var date = new Date(this.valueOf());
date.setDate(date.getDate() + days);
return date;
}
function getdaterange(startdate, enddate)
{
var s = new Date(startdate);
var e = new Date(enddate);
var datearray = [s];
var done = false;
while(!done)
{
var temp = datearray;
var date = temp.pop().addDays(1);
if (date.valueOf() == e.valueOf())
{
datearray.push(date);
done = true;
}
else
{
datearray.push(date);
}
}
return datearray;
}
console.log(getdaterange("2018-09-01", "2018-09-25"));