关于Moment.js warning:Deprecation warning: value provided is not in a recognized RFC2822 or ISO format
Posted Kabukiyo Lin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Moment.js warning:Deprecation warning: value provided is not in a recognized RFC2822 or ISO format相关的知识,希望对你有一定的参考价值。
关于Moment.js 报错
近期在接手一个项目时,发现原代码运行时会报一个关于Moment.js的warning。
Warning信息:
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.
通过信息大概知道warning的意思是:所提供的值并不是被识别的RFC822或ISO格式。
相信有小伙伴在做项目时会遇到这个warning,虽然这个warning并不是自己写出来的,但既然看到了那就处理一下。
错误代码:
if (typeof a === 'string') {
const aDate = moment(a), bDate = moment(b);
if (aDate.isValid() && bDate.isValid()) {
return balbabla
} else {
return balbabla
}
} else {
return balbabla
}
解决方案
把
const aDate = moment(a), bDate = moment(b);
改作下面任意一句
const aDate = moment(a,moment.ISO_8601), bDate = moment(b,moment.ISO_8601);
const aDate = moment(a,moment.RFC_2822), bDate = moment(b,moment.RFC_2822);
这样value就以正确且可被识别的格式提供并使用了,便不会再报关于format的warning
以上是关于关于Moment.js warning:Deprecation warning: value provided is not in a recognized RFC2822 or ISO format的主要内容,如果未能解决你的问题,请参考以下文章
javascript 关于使用Moment.js的博客文章的代码示例