我正在尝试使用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
返回负值。
示例结果:
答案 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)
答案 4 :(得分:-2)
https://momentjs.com/docs/#/displaying/difference/
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
a.diff(b) // 86400000