首页 > 解决方案 > 检查日期是否在未来三个月内

问题描述

我总是返回 true:

const dateToCheck = '2020-02-18 11:46:04'  
const isInNext3Months = (dateToCheck) => {
    return moment().diff(dateToCheck, "days") < 30
}

不知道为什么

标签: javascriptmomentjs

解决方案


const afterThreeMonths = '2020-05-18 11:46:04'  
const beforeTreeMonths = '2020-02-18 11:46:04'  
const isInNext3Months = (dateToCheck) => {
    return moment().diff(dateToCheck, "days") > -90
}

console.log(isInNext3Months(afterThreeMonths)) // false
console.log(isInNext3Months(beforeTreeMonths)) // true

Diff 返回负值,因此您需要翻转比较,三个月是 90 天,而不是函数中指定的 30 天。

硬编码天数并不是正确的方法,因为你不知道下个月是 30 天还是 31 天。

你需要做这样的事情如何在 MomentJS 中获取上个月、过去三个月的天数列表,但要检查接下来的几个月。


推荐阅读