代码之家  ›  专栏  ›  技术社区  ›  andilabs

矩js减去日期等于另一个日期<=返回false而不是true

  •  -1
  • andilabs  · 技术社区  · 2 年前

    moment(date).format('YYYY-MM-DD')
    '2022-07-15'
    moment(range.end).subtract(1, 'days').format('YYYY-MM-DD')
    '2022-07-15'
    

    moment(date) <= moment(range.end).subtract(1, 'days')

    enter image description here

    使用momentjs比较这几天的日期相等、gt、lt的正确方法是什么?

    使用 isSameOrBefore

    date.format('YYYY-MM-DD')
    '2022-07-15'
    range.end
    '2022-07-16'
    moment(date).format('YYYY-MM-DD')
    '2022-07-15'
    moment(range.end).subtract(1, 'days').format('YYYY-MM-DD')
    '2022-07-15'
    moment(date).isSameOrBefore(moment(range.end).subtract(1, 'days'))
    false
    

    我想我明白了:

    moment(date).isSameOrBefore(moment(range.end).subtract(1, 'days'), 'day')

    今天提供检查的粒度级别似乎可以解决这个问题。

    docs

    由于第二个参数决定精度,而不仅仅是要检查的单个值, .

    1 回复  |  直到 2 年前
        1
  •  2
  •   andilabs    2 年前

    这一刻给了我们 isBefore isAfter , isSame isSameOrBefore 等等进行比较。

    var a = moment().format('YYYY-MM-DD')
    
    var b = moment().subtract(1, 'days').format('YYYY-MM-DD')
    
    console.log(moment(a).isAfter(b));
    console.log(moment(a).isBefore(b));
    console.log(moment(a).isSameOrBefore(b));
    // sometimes you may want to provide precision level of comparision like this:
    console.log(moment(a).isSameOrBefore(b, 'day'));
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>