2016-11-09 74 views
1

我在我的代码中使用了moment.js和moment-timezone.js来计算日期时间。 一段时间后(所以这是不是在首位的问题)我已经开始在收到警告消息说此:使用moment.js时的弃用警告

vendor.js:50531弃用警告:提供的值不是在 认可的ISO格式。时刻建设回落到日期(), 这是不可靠的跨所有浏览器和版本。非ISO日期 格式不鼓励,将在即将发布的主要版本 中删除。有关更多信息,请参阅 http://momentjs.com/guides/#/warnings/js-date/。 参数:[0] _isAMomentObject:真,_isUTC:假,_useUTC:假, _l:未定义,_i:,_f:,_strict:未定义,_locale:[对象的对象]错误 在Function.createFromInputFallback(http://localhost:8001/public/js/vendor.js:50558:98) 在configFromString在configFromInput(http://localhost:8001/public/js/vendor.js:52657:13)(http://localhost:8001/public/js/vendor.js:52297:32) 在prepareConfig(http://localhost:8001/public/js/vendor.js:52640:13) 在createFromConfig(http://localhost:8001/public/js/vendor.js:52607:44) 在createLocalOrUTC(http://localhost:8001/public/js/vendor.js:52694:16) 在local__createLocal(http://localhost:8001/public/js/vendor.js:52698:16) 在utils_hooks__hooks(http://localhost:8001/public/js/vendor.js:50265:29) 在新CalenderCtrl(http://localhost:8001/public/js/vendor.js:111047:18) 在Object.invoke(http://localhost:8001/public/js/vendor.js:17317:19

我不知道这意味着什么,甚至搜索彻底moment.js文档后。

这是代码的一部分,我用moment.js:

convertSelectedTimeZoneToClients() { 
     let timeZoneInfo = { 
      usersTimeZone: this.$rootScope.mtz.tz.guess(), 
      utcOffset: this.formData.timeZone.offset, 
      selectedDateTime: this.toJSONLocal(this.formData.sessionDate) + " " + this.formData.sessionTime 
     }; 

     let utcTime = this.$rootScope.mtz.utc(timeZoneInfo.selectedDateTime).utcOffset(timeZoneInfo.utcOffset).format("YYYY-MM-DD HH:mm"); 
     let formatedUtcTime = this.$rootScope.mtz.utc(utcTime).toDate(); 
     let localTime = this.$rootScope.mtz(formatedUtcTime).format("YYYY-MM-DD HH:mm"); 
     this.$scope.clientDateTimeZone = localTime; 
} 

是否有人看到可能导致此警告一些潜在的问题。 我唯一能想到的是'YYYY-MM-DD HH:mm'不是ISO格式,但我需要使用这种格式。

+1

github上的一个相关问题https://github.com/moment/moment/issues/3440 –

+0

'YYYY-MM-DD HH:mm'包含在官方[解析文档]中列出的_Supported ISO 8601 strings_中, (http://momentjs.com/docs/#/parsing/string/),这是行和字符串值给你_Deprecation warning_? – VincenzoC

回答

0

this.$rootScope.mtz(formatedUtcTime) -

你可能需要在你发现在目前的时间格式通过。 即

this.$rootScope.mtz(formatedUtcTime, "MM-DD-YYYY")

帮助解析器理解的格式。我猜想内部解析器会窒息当前的日期格式。