在2.9+ 版本中有一个isBetween
功能,但它是独占的:
var compareDate = moment("15/02/2013", "DD/MM/YYYY");
var startDate = moment("12/01/2013", "DD/MM/YYYY");
var endDate = moment("15/01/2013", "DD/MM/YYYY");
// omitting the optional third parameter, 'units'
compareDate.isBetween(startDate, endDate); //false in this case
有一个包容性的解决方法......
x.isBetween(a, b) || x.isSame(a) || x.isSame(b)
...这在逻辑上等同于
!(x.isBefore(a) || x.isAfter(b))
在2.13 版本中,该isBetween
函数具有第四个可选参数inclusivity
.
像这样使用它:
target.isBetween(start, finish, 'days', '()') // default exclusive
target.isBetween(start, finish, 'days', '(]') // right inclusive
target.isBetween(start, finish, 'days', '[)') // left inclusive
target.isBetween(start, finish, 'days', '[]') // all inclusive
需要考虑的更多单位: years, months, days, hours, minutes, seconds, milliseconds
注意:单位仍然是可选的。使用null
作为第三个参数忽略单位在这种情况下毫秒是默认的粒度。
访问官方文档