2016-11-09 2 views
1

Я использую moment.js и moment-timezone.js для расчета даты в моем коде. Через некоторое время (так что это не проблема, в первую очередь), я начал получать предупреждение говорить это:Предупреждение об устаревании при использовании момента.js

vendor.js: 50531 Deprecation предупреждение: значение, предоставляемое не в признанному формату ISO , момент возвращается к js Date(), , который не является надежным во всех браузерах и версиях. Форматы Non ISO не поощряются и будут удалены в предстоящем выпуске . Пожалуйста, обратитесь к http://momentjs.com/guides/#/warnings/js-date/ для получения дополнительной информации. Аргументы: [0] _isAMomentObject: истинные, _isUTC: ложь, _useUTC: ложь, _l: не определено, _I:, _f:, _strict не определено, _locale: [объект Object] Ошибка на Function.createFromInputFallback (http://localhost:8001/public/js/vendor.js:50558:98) на configFromString (http://localhost:8001/public/js/vendor.js:52297:32) в configFromInput (http://localhost:8001/public/js/vendor.js:52657:13) в 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; 
} 

ли кто-то видит некоторые потенциальные проблемы, которые могут вызвать это предупреждение. Единственное, что я могу придумать, это то, что «ГГГГ-ММ-ДД ЧЧ: мм» не является форматом ISO, но мне все равно нужно использовать этот формат.

+1

Связанная с этим проблема на github https://github.com/moment/moment/issues/3440 –

+0

'YYYY-MM-DD HH: mm' включена в _Supported строки ISO 8601, перечисленные в официальном документе [синтаксические разборки] (http://momentjs.com/docs/#/parsing/string/), которая является строкой и строковым значением, которое дает вам _Deprecation warning_? – VincenzoC

ответ

0

this.$rootScope.mtz(formatedUtcTime) -

вам, возможно, придется пройти в формате, который вы найдете время, в настоящее время. т.е.

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

помочь анализатор понять формат. Я предполагаю, что внутренний синтаксический анализатор захлебывается в любом формате, который находится в данный момент.

Смежные вопросы