javascript - 如何计算当前连续天数(从当前日期开始的连续天数)?

标签 javascript

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/

相关文章:

php - 多域应用中的用户认证

javascript - 如何为所有输入字段添加额外的 Javascript 事件处理程序以记录点击+编辑?

javascript - 更新 d3 线图显示不正确的数据,可能是由于路径转换所致

javascript - 如何在隐藏的 <div> 上方添加 <div>

javascript - 控制 YUI 数据表记录 ID

javascript - underscore.js - 确定数组数组中的所有值是否匹配

javascript - 将数据从 Chrome 扩展程序传递到 .net 应用程序

javascript - AngularJS 单页应用程序中的可切换选项卡?

javascript - Couchdb 对带有字符串的大型文档的 View 作为键超时

javascript - 如何通过 onclick 事件计算图片的点击次数?