dar*_*ush 155 javascript date momentjs
我使用以下代码使用Moment.js将服务器端日期时间转换为本地时间
moment(moment('Wed, 23 Apr 2014 09:54:51 +0000').format('lll')).fromNow()
Run Code Online (Sandbox Code Playgroud)
但我得到:
弃用警告:时刻构建回落到日期.这是不鼓励的,将在即将发布的主要版本中删除.有关详细信息,请参阅https://github.com/moment/moment/issues/1407.
看来我无法摆脱它!我该如何解决?
Joe*_*son 300
要摆脱警告,您需要:
传入日期字符串的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
内部的日期构造在new Date()
javascript中使用。该new Date()
构造可在所有浏览器中以RFC2822或ISO格式识别日期字符串。当构造moment
日期不是这些格式的对象时,将引发弃用警告。
尽管会引发弃用警告,但对于某些格式,moment
将在Chrome中成功构建对象,但在Firefox或Safari中不会成功构建对象。因此,在Chrome中处理日期可能会得到预期的结果(并非总是如此),并抛出Invalid Date
其他结果。
考虑02.02.2018
,
铬moment("02.02.2018")._d
-->Fri Feb 02 2018 00:00:00 GMT+0530 (India Standard Time)
Firefox moment("02.02.2018")._d
-->Invalid Date
Safari moment("02.02.2018")._d
-->Invalid Date
因此moment.js
,如果不使用推荐/标准格式,使用时后果自负。
为取消弃用警告,
moment
构造的日期格式。范例: 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格式- 格式在Github上
moment.suppressDeprecationWarnings = true;
我建议暂时覆盖输入回退。
moment.createFromInputFallback=function (config){
config._d = new Date(config._i);
}
Run Code Online (Sandbox Code Playgroud)由于(3)将禁止所有警告,因此(4)将仅禁止日期构造回退。使用(4),您将获得Invalid Date
内部new Date()
使用,并且在控制台中可以看到其他不赞成使用的东西,因此可以升级一下,或者可以在应用程序中替换不赞成使用的方法。
归档时间: |
|
查看次数: |
76640 次 |
最近记录: |