首页 > 解决方案 > 使用 MomentJS 转换日期时遇到问题

问题描述

我正在尝试使用 MomentJS 转换日期:

console.log(moment(this.entities[i].created_at).isValid());
this.entities[i].created_at = moment(this.entities[i].created_at).format("DD-MM-YYYY HH:mm");

控制台日志返回true,据我了解,这意味着日期为 VALID 格式。但是,我仍然收到此错误消息:

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.
Arguments: 
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 21-05-2020 19:43, _f: undefined, _strict: undefined, _locale: [object Object]

如果我 console.log 日期,我会收到2020-05-21 19:43:58.099745+00.

我也尝试了这些方法但没有成功:

moment(this.entities[i].created_at.toString()).format("DD-MM-YYYY HH:mm");
moment(this.entities[i].created_at, 'YYYY-MM-DD hh:mm:ss').format("DD-MM-YYYY HH:mm");
moment(this.entities[i].created_at.toString(), 'YYYY-MM-DD hh:mm:ss').format("DD-MM-YYYY HH:mm");

有任何想法吗?

标签: javascriptmomentjs

解决方案


您的输入字符串(来自this.entities[i].created_at)似乎是:(21-05-2020 19:43由 捕获_i)。

因此,您的输入格式需要匹配。

moment(this.entities[i].created_at, "DD-MM-YYYY HH:mm")

如果您打算从那里以不同的方式格式化它,您可以:

moment(this.entities[i].created_at, "DD-MM-YYYY HH:mm").format("YYYY-MM-DD HH:mm:ss")

推荐阅读