我使用以下代码通过moment.js将服务器端的日期时间转换为本地时间。
moment(moment('Wed, 23 Apr 2014 09:54:51 +0000').format('lll')).fromNow()
但我得到的是:
弃用警告: moment构造回落到js Date。这是不鼓励的,并将在即将到来的主要版本中删除。有关更多信息,请参阅https://github.com/moment/moment/issues/1407。
看起来我摆脱不了它!我怎么才能修复它?
发布于 2014-04-30 06:23:56
要消除警告,您需要执行以下任一操作:
在您现在拥有的字符串中输入moment('2014-04-23T09:54:51');
将字符串moment('Wed, 23 Apr 2014 09:54:51 +0000', 'ddd, DD MMM YYYY HH:mm:ss ZZ');
moment(new Date('Wed, 23 Apr 2014 09:54:51 +0000'));
最后一个选项是Moment目前支持的内置回退,带有弃用的控制台警告。他们说,在未来的版本中,他们不会支持这种回退。他们解释说,使用new Date('my date')
太不可预测了。
发布于 2017-09-26 01:23:20
或者,您可以通过设置moment.suppressDeprecationWarnings = true;
来禁止显示弃用警告
发布于 2018-07-18 03:07:16
moment
中的日期构造在内部使用javascript中的new Date()
。在所有浏览器中,new Date()
构造都可以识别或格式的日期字符串。当构造日期不是这些格式的moment
对象时,将抛出弃用警告。
虽然抛出了弃用警告,但对于某些格式,moment
对象将在Chrome中成功构建,但在Firefox或Safari中不会。因此,在Chrome中处理日期可能会得到预期的结果(不是所有时间),并在其他浏览器中抛出Invalid Date
。
考虑一下,02.02.2018
,
Chrome - moment("02.02.2018")._d
-> Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)
火狐- moment("02.02.2018")._d
-> Invalid Date
Safari - moment("02.02.2018")._d
-> Invalid Date
因此,如果未使用推荐/标准格式,则使用moment.js
的风险自负。
用于抑制弃用警告的,
根据@Joe Wilson在上一个答案中提出的
moment
construction.上的日期格式
示例:moment("02.05.2018", "DD.MM.YYYY").format("DD MM YYYY");
示例:moment("2018-02-01T18:30:00.000Z")
- ISO格式
moment("Thu, 01 Feb 2018 18:30:00 GMT")
- RFC2822格式- Format in Github
moment.suppressDeprecationWarnings = true;
配置( moment.createFromInputFallback=function ){ config._d =新日期(config._i);}
因为(3)将抑制所有警告,(4)将仅抑制日期构造回退。使用(4),你将得到Invalid Date
,因为使用了内部的new Date()
,并且在控制台中可以看到其他弃用的方法,所以可以在应用程序中升级moment或替换弃用的方法。
https://stackoverflow.com/questions/23263380
复制相似问题