const arr = [
{
"date": "2019-09-18"
},
{
"date": "2019-09-19"
},
{
"date": "2019-09-21"
},
{
"date": "2019-09-22"
},
{
"date": "2019-09-23"
}
]
function currentStreak(arr) {
let count = 0
arr.reverse().forEach((el, i) => {
if (new Date() - new Date(el.date) === i * 86400000) count++
})
return count
}
我很难让它发挥作用。假设当前日期是“2019-09-23”,为什么上面的代码应该返回 3
时却返回 0
?
最佳答案
您正在传递当前日期,即今天的日期 - 11 月 5 日星期二,因此计算是基于今天的日期,您必须传递日期对象的值
例如:-
const arr = [
{
"date": "2019-09-18"
},
{
"date": "2019-09-19"
},
{
"date": "2019-09-21"
},
{
"date": "2019-09-22"
},
{
"date": "2019-09-23"
}
]
function currentStreak(arr) {
let count = 0
arr.reverse().forEach((el, i) => {
if (new Date('2019-09-23') - new Date(el.date) === i * 86400000) count++
})
return count;
}
console.log(currentStreak(arr))
关于javascript - 如何计算当前连续天数(从当前日期开始的连续天数)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58706143/