【问题标题】:Comparing a moment.js obect to a timestamp from JSON response将 moment.js 对象与 JSON 响应中的时间戳进行比较
【发布时间】:2022-01-28 00:38:09
【问题描述】:

我正在尝试将时刻对象(30 天前)与给定的时间戳进行比较。 isBefore 和 isAfter 都返回 false。我不确定我哪里出错了?

var startdate = moment.utc().subtract(30,'days')

var RequestedDate = moment.utc('14/12/2021, 11:26')

var isbefore = startdate.isBefore(RequestedDate)
var isafter = startdate.isAfter(RequestedDate)

console.log(isafter)
console.log(isbefore)

【问题讨论】:

    标签: javascript typescript timestamp momentjs utc


    【解决方案1】:

    根据a fiddle of your code 中发出的错误,请求的日期格式不正确:

    弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。 moment 构造回退到 js Date(),这在所有浏览器和版本中并不可靠。不鼓励使用非 RFC2822/ISO 日期格式。更多信息请参考http://momentjs.com/guides/#/warnings/js-date/

    如果你能够使用"Date + Format" constructor,那么你可以解析this之类的东西:

    var RequestedDate = moment.utc('14/12/2021, 11:26', 'D/M/Y, H:m', true)
    // "Tue Dec 14 2021 11:26:00 GMT+0000"
    

    请注意严格模式的使用,如文档中所述:

    同时解析日期和时间时,您可能会得到意想不到的结果。以下示例可能无法按您的预期解析:

    moment('24/12/2019 09:15:00', "DD MM YYYY hh:mm:ss");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2022-10-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多