我正在尝试验证来自Db的日期与完整日历中的事件日期不重叠。输入从一开始就是所有字符串。 moment()。isBetween()无论如何总是给出错误。我究竟做错了什么?
var format = 'YYYY-MM-DD h:mm',
start = "2017-12-08 09:00",
end = "2017-12-08 10:00",
checkStart = "2017-12-08 09:00";
var startDate = moment(start).format(format),
endDate = moment(end).format(format);
var startDatetoCheck = moment(checkStart).format(format),
endDateToCheck = moment(checkStart).add(1, 'hours').format(format);
var bool1 = moment(checkStart).isBetween(moment(start).format(format), moment(end).format(format));
var bool2 = moment(endDateToCheck).isBetween(moment(start).format(format), moment(end).format(format));
答案 0 :(得分:1)
默认情况下moment(data0).isBetween(date1, date2)
使用严格比较。
版本2.13.0引入了包容性。 A [表示包含值。 A(表示排除。如果使用包含性参数,则必须通过两个指标。
var format = 'YYYY-MM-DD hh:mm',
start = "2017-12-08 09:00",
end = "2017-12-08 10:00",
checkStart = "2017-12-08 09:00";
var startDate = moment(start).format(format),
endDate = moment(end).format(format);
var startDatetoCheck = moment(checkStart).format(format),
endDateToCheck = moment(checkStart).add(1, 'hours').format(format);
var bool1 = moment(checkStart).isBetween(moment(start).format(format), moment(end).format(format), null, '[]');
var bool2 = moment(endDateToCheck).isBetween(moment(start).format(format), moment(end).format(format), null, '[]')
console.log(bool1)
console.log(bool2)

<script src="https://cdn.jsdelivr.net/npm/moment@2.19.3/moment.min.js"></script>
&#13;