我试图弄清楚为什么将变量的对象内容添加到数组而不是实际的Date对象的原因
async function timeShift(dayWeek = 'weeks', num = 4) {
console.log('Timeshift Start');
formattedDate = moment(Date.parse(start_date))
let apptStartArr = [formattedDate]
let lastApptonArr = apptStartArr[apptStartArr.length - 1]
i = 1
while (lastApptonArr.isBefore(Date.now())) {
newStart = lastApptonArr.add(num, `${dayWeek}`).toDate().getTime()
apptStartArr.push(newStart)
console.log(`${i}, ${newStart}`);
i += 1
}
//Must pop the last array off and return
console.log(apptStartArr);
console.log(lastApptonArr);
return lastApptonArr
}
它产生以下
[ moment("2020-01-30T13:00:00.000"),
1568318400000,
1570737600000,
1573160400000,
1575579600000,
1577998800000,
1580418000000 ]
对不起,草率的代码!
最佳答案
这是因为您的第一个值是一个矩对象。您需要将其转换为时间戳
let apptStartArr = [formattedDate]
应该
let apptStartArr = [formattedDate.toDate().getTime()]
如果您要使用Date对象而不是时间戳号,请不要调用
getTime()
let apptStartArr = [formattedDate.toDate()];
和
newStart = lastApptonArr.add(num, `${dayWeek}`).toDate();