【发布时间】:2017-03-23 10:46:24
【问题描述】:
我在我的代码中使用 moment.js 和 moment-timezone.js 进行日期时间计算。 过了一会儿(所以这首先不是问题)我开始收到警告消息:
vendor.js:50531 弃用警告:提供的值不在 公认的 ISO 格式。时刻构造回退到 js Date(), 这在所有浏览器和版本中并不可靠。非 ISO 日期 格式不鼓励,将在即将到来的专业中删除 发布。请参阅 http://momentjs.com/guides/#/warnings/js-date/ 了解更多信息。 参数:[0] _isAMomentObject:真,_isUTC:假,_useUTC:假, _l:未定义,_i:,_f:,_strict:未定义,_locale:[object 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;
}
是否有人发现一些可能导致此警告的潜在问题。 我唯一能想到的是 'YYYY-MM-DD HH:mm' 不是 ISO 格式,但无论如何我都需要使用这种格式。
【问题讨论】:
-
github上的一个相关问题github.com/moment/moment/issues/3440
-
YYYY-MM-DD HH:mm包含在官方parsing docs 中列出的支持的ISO 8601 字符串 中,这是给您弃用警告的行和字符串值?
标签: javascript jquery node.js momentjs