“凄惨弃用警告:moment construction fall back to js Date”当试图在 moment.js 中转换 RFC2822 日期时

问题描述

要摆脱警告,您需要:

  • 传入您的日期字符串的 ISO 格式版本:

moment('2014-04-23T09:54:51');

  • 传入你现在拥有的字符串,但告诉 Moment 字符串的格式:

moment('Wed, 23 Apr 2014 09:54:51 +0000', 'ddd, DD MMM YYYY HH:mm:ss ZZ');

  • 将您的字符串转换为 JavaScript Date 对象,然后将其传递给 Moment:

moment(new Date('Wed, 23 Apr 2014 09:54:51 +0000'));

最后一个选项是 Moment 目前支持的内置回退,带有已弃用的控制台警告。他们说他们不会在未来的版本中支持这种回退。他们解释说使用new Date('my date')太不可预测了。

解决方法

我正在使用以下代码使用 moment.js 将服务器端日期时间转换为本地时间。

 moment(moment('Wed,23 Apr 2014 09:54:51 +0000').format('lll')).fromNow()

但我得到:

弃用警告:时刻构造回退到 js
日期。这是不鼓励的,将在即将发布的主要版本中删除。请参阅https://github.com/moment/moment/issues/1407了解更多信息。

看来我无法摆脱它!我该如何解决?