比较2个日期以查看当前日期是否通过 - React / Momentjs

时间:2017-05-29 16:05:04

标签: reactjs datetime momentjs

我目前正在努力比较2个日期(和时间):我的行动必须完成的日期限制和当前日期。

我以这种格式收到日期和时间:2017-05-29T15:30:17.983Z

然后我尝试使用此功能比较2个日期:

function checkExceedLimit (props) {
    exceedLimit = 0;
    props.items.map((item) => {
        var dateLimit = moment(item.limit)
        var now = moment()
        if (item.limit != null || item != ' ' && now > dateLimit) {
            exceedLimit++;
            console.log(now)
            console.log(dateLimit)
        }
    })
}

基本上我想比较每个项目的limit,并在传递当前日期时将+1添加到beyondLimit。然而,即使并非所有限制都通过,它也会为每个限制返回+1。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

只需使用isBeforeisAfter,就您的情况而言:

{{1}}

答案 1 :(得分:1)

首先,你应该正确地创建你的时刻实例。

像这样: moment("2017-05-29T15:30:17.983Z", 'YYYY-MM-DDTHH:mm:ss.SSSZ')

您可以查看此链接了解详情:https://momentjs.com/docs/#/parsing/string-format/

然后,您可以使用https://momentjs.com/docs/#/query/

上的时刻API方法来比较日期

所以你的代码应该是这样的:

function checkExceedLimit (props) {
  exceedLimit = 0;
  props.items.map((item) => {
    const dateLimit = moment(item.limit, 'YYYY-MM-DDTHH:mm:ss.SSSZ');
    const now = moment()
    if (dateLimit.isValid() && now.isAfter(dateLimit)) {
        exceedLimit++;
        console.log(now.toString())
        console.log(dateLimit.toString())
    }
  })
}