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

Moment isValid method keeps returning deprecation warning

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

为此,我使用了 moment.js 中的 isValid() 方法。我使用此方法检查值是否为有效日期时间,然后显示预期结果。

我的问题是,当值采用无效日期形式时,Moment 不断返回此弃用警告。

弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。 moment 构造回退到 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
);

Link 到 codesandbox: https://codesandbox.io/s/modern-resonance-tu68c?file=/src/index.js

提前致谢!

你必须使用 moment(String, String, Boolean) specifying the accepted format using moment tokens (YYYY: 4 digit year, MM: month, DD: days of the month, HH: 0-23 hours, mm: 0-50 seconds, ss: 0-59 seconds, SSSSSS: fractional seconds, Z: UTC offset) and strict mode.

示例:

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
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.0/moment.min.js"></script>