Moment.js 的 isBetween
方法用于检查一个日期是否在两个其他日期之间。它有四个参数,用于定义如何进行比较:
- a (开始日期): 这是范围的起始日期。被检查的日期需要在这个日期之后(包括这个日期)。
- b (结束日期): 这是范围的结束日期。被检查的日期需要在这个日期之前(包括这个日期)。
- units (单位): 这是一个可选参数,用于指定比较的单位。常见的单位有
'years'
、'months'
、'days'
、'hours'
、'minutes'
、'seconds'
等。如果不传递这个参数,Moment.js 将默认使用'milliseconds'
。 - inclusive (包含边界): 这是一个可选参数,用于指定是否包含边界。它的值可以是以下之一:
'[]'
:包括两个边界(即,检查日期在开始日期和结束日期之间,包括这两个日期)。'()'
:不包括两个边界(即,检查日期严格在开始日期和结束日期之间,不包括这两个日期)。'[)'
:包括开始日期但不包括结束日期。'(]'
:包括结束日期但不包括开始日期。
示例解释
假设我们有以下代码:
let a = moment("2024-08-20");
let sevenDaysAgo = moment().subtract(7, 'days');
let today = moment();
if (a.isBetween(sevenDaysAgo, today, null, '[]')) {
console.log("是近7天内的日期");
} else {
console.log("不是近7天内的日期");
}
在这个示例中:
- sevenDaysAgo 是起始日期(7天前的日期)。
- today 是结束日期(今天的日期)。
- null 表示不指定比较的单位,所以默认为毫秒级别。
- ‘[]’ 表示包括这两个边界日期。
因此,isBetween(sevenDaysAgo, today, null, '[]')
方法检查日期 a
是否在 sevenDaysAgo
和 today
之间,包括这两个日期。如果是,就会输出 “是近7天内的日期”。