提供的值不是公认的 RFC2822 或 ISO 格式 - Vue js

Value provided is not in a recognized RFC2822 or ISO format - Vue js

我在将此库与 vue.js 一起使用时遇到问题 https://www.npmjs.com/package/vue-moment

当我尝试在 table 中传递日期时,我收到此警告:

Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.

这是我的代码:

<small>{{ item.created_at | moment("from", "now", true) }}</small>

这就是我的代码没有任何过滤的方式:

2021-10-11 11:17:03

我试过这个:

   <small>{{ [item.created_at,"YYYY-MM-DD, h:mm:ss a"] | moment("from", "now", true) }}</small>

但现在得到这个:

app.js Could not build a valid `moment` object from input.

知道如何在 vue js 中修复此警​​告吗?

谢谢

正如您警告的那样,您的两种方法都不匹配 RFC2822/ISO8601。

RFC2822 看起来像这样:

01 Jun 2020 14:11:32 -0700

ISO8601 看起来像这样:

2021-10-10T22:00:00.000Z

如果你需要把vue-moment的日期格式转换成ISO8601格式,你可以用这样一个简短的函数来实现:

showNewDate(date) {
   return new Date(Date.parse(date))
}

如果您将 2021-10-11 11:17:03 传递给此函数,它将为您提供 2021-10-11T09:17:03.000Z,即日期 +- 您的时区,在我的示例中减去两个小时。