首页 > 解决方案 > JavaScript:有没有办法检测这种格式的给定日期在过去 X 天内?

问题描述

我有一堆像这样格式化的时间戳

const dates = ['2021.6.01', '2021.6.11', '2021.9.02']

我想编写一个工具,它可以告诉我具有这种格式的日期是否在另一个日期的最后 X 天内。

例如,2021.6.10在 的最后 7 天之内,2021.6.122021.6.01在 的最后 7 天之内2021.6.12

我认为 API 接口会是,但请随时提出更好的命名

function isWithinTheLastDays(originalDate, date, days)

我发现手动实现真的很棘手,并且有很多边缘情况。

标签: javascript

解决方案


Date用构造函数解析日期,减去两个日期并将毫秒差转换为天(除以 86400000),然后检查它是否小于或等于days

function isWithinTheLastDays(originalDate, date, days){
  return (new Date(date) - new Date(originalDate)) / 86400000 <= days;
}

console.log(isWithinTheLastDays('2021.6.10', '2021.6.12', 7)) //2 day diff
console.log(isWithinTheLastDays('2021.6.10', '2021.6.17', 7)) //7 day diff
console.log(isWithinTheLastDays('2021.6.10', '2021.6.18', 7)) //8 day diff


推荐阅读