【问题标题】:isBetween function in momentjs is not behaving as expectedmomentjs 中的 isBetween 函数未按预期运行
【发布时间】:2020-06-10 04:52:18
【问题描述】:

我已使用以下函数返回介于用户指定日期的 (-4) 到 (+2) 小时之间的日期(使用用户 ID 检索),但 isBetween 函数不起作用正如预期的那样!我是前端编程新手,如果答案很明显,我很抱歉。

 router.get('/result/:id', async (req, res) => {
    try {

        // let udate = req.params.date;
        const user = await match.findById(req.params.id)
        let m = moment(user.date)
        console.log(m.toString())
        m1 = m.subtract(4, 'h');
        console.log(m1);
        m = moment(user.date)
        let m2 = m.add(2, 'hours');
        console.log(m2);
        const query = await match.find()
        query.map(a => {

            if (moment(a.date).isBetween(moment(user.date).add(2, 'h'), moment(user.date).subtract(4, 'h'))) {
                console.log(moment(a.date).toString);
            }
        })
        const list = await match.find({})
        res.json(list)
    } catch (err) {
        res.send('error: ' + err)
    }
})```


[the log of this code comes to be][1]


  [1]: https://i.stack.imgur.com/YihLX.png

【问题讨论】:

    标签: javascript node.js reactjs date momentjs


    【解决方案1】:

    isBetween(m1, m2) 函数检查日期 m1m2 之间。

    尝试替换

    moment(a.date).isBetween(moment(user.date).add(2, 'h'), moment(user.date).subtract(4, 'h'))

    moment(a.date).isBetween(moment(user.date).subtract(4, 'h'), moment(user.date).add(2, 'h'))

    【讨论】:

    • 感谢您的帮助。但是我在查询时尝试使用 $lte 和 $gte 实现相同的功能。
    【解决方案2】:

    参数的顺序很重要

    isBetween

    请注意,两个参数的顺序很重要:“较小”的日期 应该在第一个参数中。

    moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
    moment('2010-10-20').isBetween('2010-10-25', '2010-10-19'); // false
    

    交换你传递的参数的顺序

    if (moment(a.date).isBetween(
      moment(user.date).subtract(4, 'h'),
      moment(user.date).add(2, 'h')
    )) {
      console.log(moment(a.date).toString);
    }
    

    【讨论】:

    • @PurushothamParthy NP。如果这充分解决了您的问题,请接受答案。
    • 是的,对不起。再次感谢。
    • @PurushothamParthy 您的问题和此解决方案是否有所改变,以便我可以改进它以供将来的读者/参考?
    猜你喜欢
    • 2020-06-02
    • 2011-10-31
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    相关资源
    最近更新 更多