【问题标题】:Deprecation warning when using moment.js使用 moment.js 时的弃用警告
【发布时间】: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 格式,但无论如何我都需要使用这种格式。

【问题讨论】:

标签: javascript jquery node.js momentjs


【解决方案1】:

this.$rootScope.mtz(formatedUtcTime) -

您可能需要传递您当前找到的时间格式。 即

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

帮助解析器理解格式。我猜内部解析器正在阻塞当前日期的任何格式。

【讨论】:

    猜你喜欢
    • 2018-03-27
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2017-02-19
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多