gpt4 book ai didi

javascript - 如果提供弃用格式警告,MomentJS 使用语言环境

转载 作者:行者123 更新时间:2023-11-30 20:23:03 28 4
gpt4 key购买 nike

我正在使用 Moment JS 并且遇到了一些陷阱 22 的情况(但我假设它是可以修复的,只是我不确定如何修复)。

Moment JS 正在给我弃用警告,这是我以前没有收到的(我猜是在弃用之前),因此如果我尝试以下操作。

moment(‘7/4/2018 6:00 AM’).locale(userLocale).format('YYYY-MM-DD HH:mm:ss’);

我收到警告

moment.min.js:1 Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.

尽管有此警告,但我的日期已正确设置并应用了正确的语言环境时间。但是,由于警告,我有点担心,因此想修复它。

从下面它建议我应该在我的 Moment 定义中使用 String + 格式。

Deprecation warning in moment js

但是如果我尝试

moment(‘7/4/2018 6:00 AM’,'YYYY-MM-DD HH:mm:ss').locale(userLocale)

它将我的 Moment 设置为不正确的毫秒值。它将其设置为 61936855125000,即 3932 年 9 月 13 日星期二下午 6:58:45 GMT+01:00 DST

如果我想在我的动态中使用 .locale(),我怎样才能正确地创建我的动态而不引发此弃用警告?

如有任何帮助,我们将不胜感激。我希望这个问题是有道理的。

最佳答案

原因:

momentjs 库不支持您传递给 moment() 的日期,即 7/4/2018 6:00 AM(更具体地说是 MM/DD/YYYY 格式)。这就是收到警告的原因。

您可以在此处查看支持的 ISO 8601RFC 2822 格式:http://momentjs.com/docs/#/parsing/string/

解决方案:

以支持的格式(您的格式是 ISO 8601)将日期传递给 moment() 而不是像下面这样的原始日期:

var date = new Date('7/4/2018 6:00 AM');
var formattedDate = date.getFullYear() + "-" + parseInt(date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();

var supportedFormat = moment(formattedDate).locale('en').format('YYYY-MM-DD HH:mm:ss');

检查下面的工作代码:

var unsupportedFormat = moment('7/4/2018 6:00 AM').locale('en').format('YYYY-MM-DD HH:mm:ss');

console.log(unsupportedFormat); //will show warning


var date = new Date('7/4/2018 6:00 AM');
var formattedDate = date.getFullYear() + "-" + parseInt(date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();

var supportedFormat = moment(formattedDate).locale('en').format('YYYY-MM-DD HH:mm:ss');
console.log(supportedFormat); // works fine
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment-with-locales.min.js"></script>

关于javascript - 如果提供弃用格式警告,MomentJS 使用语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51250492/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com