微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Moment isValid方法不断返回弃用警告

如何解决Moment isValid方法不断返回弃用警告

在给定“值”变量的情况下,我的代码应该显示以以下日期格式“ DD / MM / YY-HH:mm:ss”(如果值是有效的日期时间)格式的值,或者仅显示显示值本身(如果值不是有效的日期时间)。

为此,我使用了moment.js中的isValid()方法。我使用这种方法来检查value是否是有效的datetime,然后显示预期的结果。

我的问题是,当值采用无效的日期格式时,Moment会继续返回此弃用警告。

弃用警告:提供的值不是公认的RFC2822或ISO格式。此刻的构建工作归结于js Date(),它在所有浏览器和版本之间都不可靠。不建议使用非RFC2822 / ISO日期格式,并将在即将发布的主要版本中将其删除。有关更多信息,请参阅http://momentjs.com/guides/#/warnings/js-date/。 参数: [0] _isAMomentObject:true,_isUTC:false,_useUTC:false,_l:undefined,_i:,_f:undefined,_strict:undefined,_locale:[object Object]

有人知道我如何避免此警告?

这是我的代码

let value = "300";
// sometimes value will be "2020-01-15T11:13:20.960429-03:00",for example - which is a valid date

console.log(
  moment(value).isValid() ? moment(value).format("DD/MM/YY - HH:mm:ss") : value
);

链接到codeandBoxhttps://codesandbox.io/s/modern-resonance-tu68c?file=/src/index.js

谢谢!

解决方法

您必须使用moment(String,String,Boolean),使用矩标记来指定接受的格式(YYYY:4位数字的年份,MM:月,DD:月中的天,{ {1}}:0-23小时,HH:0-50秒,mm:0-59秒,ss:小数秒,SSSSSS:UTC偏移)和strict mode

示例:

Z
let value = "300";
// sometimes value will be "2020-01-15T11:13:20.960429-03:00",for example - which is a valid date

console.log(
  moment(value,"YYYY-MM-DDTHH:mm:ss.SSSSSSZ",true).isValid() ? moment(value).format("DD/MM/YY - HH:mm:ss") : value
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。