无法让Moment .isBetween()正常工作

时间:2017-12-08 10:02:06

标签: javascript momentjs

我正在尝试验证来自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));

1 个答案:

答案 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;
&#13;
&#13;