【问题标题】:Check if selected date is greater than yesterday Typescript + React, momentjs检查所选日期是否大于昨天 Typescript + React,momentjs
【发布时间】:2022-01-11 15:34:50
【问题描述】:

如何使用 typescript 和 momentjs 检查日期是否大于昨天?

我也在使用验证器,例如:

isPin: {
    validator: (value: string) => value.length <= 6 && value.length >= 4,
    message: 'Please enter a pin with 4 to 6 numbers'
},

我也想使用带有日期的验证器。

我试过了:

isGreaterThanYesterday: {
    validator: (value: string) => value.toString() > moment().toString(),
    message: 'The date must be greater than yesterday'
}

但它不起作用。

【问题讨论】:

    标签: reactjs typescript date validation momentjs


    【解决方案1】:

    假设value是一个有效的'YYYY-MM-DD'格式的日期字符串,可以进行如下操作:

    isGreaterThanYesterday: {
        validator: (value: string):boolean => moment(value, 'YYYY-MM-DD').isAfter(moment().subtract(1, 'days') ,
        message: 'The date must be greater than yesterday'
    }
    

    请注意,您不需要 toString on value,因为 type 已经是一个字符串。

    【讨论】:

      【解决方案2】:

      您没有提供日期格式,但我假设它是“YYYY-MM-DD”,因为它是标准的 html 格式。所以,如果你想检查日期是否严格大于昨天,你可以这样做(检查日期是否大于或等于今天的日期):

      value >= moment().format('YYYY-MM-DD')
      

      如果你想检查日期是否大于或等于昨天,你可以这样做:

      value >= moment().subtract(1, 'days').format('YYYY-MM-DD')
      

      【讨论】:

      • 你在这里比较 2 个字符串,我认为这行不通
      • 实际上它可以工作,它首先比较年份,然后是月份,然后是日期,这就是日期比较的工作原理
      • 它适用于这种特定的日期格式,第二次更改格式就会破坏比较。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-05
      相关资源
      最近更新 更多