如何使用moment.js检查两个日期是否相隔超过7天

时间:2019-06-25 08:51:31

标签: javascript momentjs

我正在尝试使用moment.js确定两个日期之间是否存在超过7天。

代码:

var start = moment(self.StartDate(), "DD/MM/YYYY");
var end = moment(self.EndDate(), "DD/MM/YYYY");

console.log(start);
console.log(end);
console.log(moment.duration(end.diff(start)).asDays());

if (moment.duration(end.diff(start)).asDays() > 7) {
    alertify.alert("Error", "Only a maximum of 7 days can be investigated.");
    return;
}

如果两个日期都在同一月份内,则此方法有效。但是,如果日期跨越两个月,则duration返回负值。

示例结果:

enter image description here

5 个答案:

答案 0 :(得分:4)

使用diff方法检查两天之间的差异,并添加days作为第二个参数来获得两天之间的差异。

var d1 = "2019-01-10";
var d2 = "2019-01-20";
var diff = moment(d2).diff(d1, 'days')
alert('difference :' + diff)

alert('is difference more than 7: ' + (diff > 7))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

答案 1 :(得分:1)

您可以这样做:

const d1 = moment([2019, 6, 30]);
const d2 = moment([2019, 6, 1]);
const diffDays = d1.diff(d2, 'days');

console.log(diffDays);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

答案 2 :(得分:0)

使用本机JavaScript:

var embedConfig = {
    ...
    settings: {
        filterPaneEnabled: false
    }
};

答案 3 :(得分:-2)

尝试

end.diff(start, "days") > 7

docs:https://momentjs.com/docs/#/displaying/difference/

答案 4 :(得分:-2)

https://momentjs.com/docs/#/displaying/difference/

var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000
相关问题