弃用警告:施工时间回落到jsdate
我正在使用下面的代码来使用Moment.js将服务器端date时间转换为本地时间
moment(moment('Wed, 23 Apr 2014 09:54:51 +0000').format('lll')).fromNow() 但是我得到:
弃用警告:施工时间回落到jsdate。 这是沮丧,将在即将到来的主要版本中被删除。 有关更多信息,请参阅https://github.com/moment/moment/issues/1407 。
看来我无法摆脱它! 我该如何解决?
要摆脱警告,您需要:
- 
传入datestring的ISO格式的版本: moment('2014-04-23T09:54:51');
- 
传入你现在的string,但是告诉Momentstring在什么格式: moment('Wed, 23 Apr 2014 09:54:51 +0000', 'ddd, DD MMM YYYY HH:mm:ss ZZ');
- 
将您的string转换为JavaScript Date对象,然后将其传递到Moment: moment(new Date('Wed, 23 Apr 2014 09:54:51 +0000'));
 最后一个选项是Moment现在支持的内置回退,带有不推荐使用的控制台警告。 他们表示在未来的版本中他们不会支持这个后备。 他们解释说,使用new Date('my date')太难以预料。 
 作为替代,您可以通过设置moment.suppressDeprecationWarnings = true;来禁止显示弃用警告moment.suppressDeprecationWarnings = true; 
 如果你的date是从一个API传递给你的string (就像我的问题),你可以使用一个filter将string转换为一个date。 这将照顾当下施工警告。 
 $scope.apiDate = 10/29/2017 18:28:03"; angular.module('myApp').filter('stringToDate', function() { return function(value) { return Date.parse(value); }; }); 
将它添加到视图中:
 {{apiDate | stringToDate | amDateFormat:'ddd, MMM DD'}}