一尘不染

尝试在moment.js中转换RFC2822日期时出现“弃用警告:瞬间构造回退到JS日期”

javascript

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

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

但我得到:

弃用警告:构建时间回落到js日期。不建议这样做,并将在即将发布的主要版本中将其删除。请参阅https://github.com/moment/moment/issues/1407了解更多信息。

看来我不能摆脱它!我该如何解决?


阅读 645

收藏
2020-05-01

共1个答案

一尘不染

要消除该警告,您需要执行以下任一操作:

  • 输入日期字符串的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')太不可预测了。

2020-05-01