【问题标题】:Localising DD MMM YYYY - How to test locally本地化 DD MMM YYYY - 如何在本地进行测试
【发布时间】:2018-02-01 16:52:30
【问题描述】:

我有一个日期格式:

var date = "21 Sep 2017 14:00"

我想将此日期更改为不带时区的 en-US(即本地)。我猜应该是:

“2017 年 9 月 21 日”;

当我这样做时(我想我需要告诉时刻我的日期格式是什么):

moment.utc(date).local().format('DD MMM YYYY') 它输出“2017 年 9 月 21 日”

但如果我这样做:

moment.utc(date).local().format() 它仍然输出“2017 年 9 月 21 日”

为了测试,我一直在将我的区域设置从 en-GB 更改为 en-US,这似乎没有任何区别。

我在这里做错了什么?

如何将日期转换为本地设置(并在本地进行测试)

我在英国

编辑:

Re cmets - 为什么这不说 Set 而不是 Sep:

http://jsfiddle.net/rLjQx/5744/

【问题讨论】:

  • ˋlocal()ˋ 函数只会更改日期或月份的名称。而且由于您接缝使用相同的语言(ˋen-GBˋ,与ˋen-USˋ),因此不会更改名称。尝试将语言更改为英语以外的其他语言
  • 我刚刚将区域设置更改为越南,我在 chrome 中重新启动了隐身模式,再看一遍,它仍然显示 2017 年 9 月 21 日。嗯。我一定是错过了其他东西
  • 您需要更改 MomentJS 的语言而不是您的计算机设置。使用这个方法:ˋmoment.local("fr-CA")ˋ
  • format() 返回一个字符串,而local() 返回一个时刻对象,你在第二种情况下登录什么?此外,不要混淆local()locale()
  • 您应该使用string+format 进行解析,而不仅仅是字符串。

标签: date datetime momentjs


【解决方案1】:

正如docs 所说:

默认情况下,Moment.js 带有英语(美国)语言环境字符串。如果您需要其他语言环境,可以将它们加载到 Moment.js 中以供以后使用。

因此,首先请确保您正在加载所有必需的语言环境(请参阅 Loading locales in the browserLoading locales in NodeJS)。

那么你必须使用locale() 方法来改变一个moment 对象的语言环境,local() 是一个不同的函数。请注意,moment 通常使用 2 位本地代码,因此如果要将语言环境设置为意大利语,则必须使用 'it' 而不是 "it-IT"。您可以找到支持的语言环境的完整列表here

最后,由于您的输入不是 moment(String)(ISO 8601 或 RFC 2822)识别的格式,您必须使用 moment(String, String),正如 Matt Johnson 在 cmets 中强调的那样。

这里是一个活生生的例子:

// var date = "21 Sep 2017 14:00";
// moment.utc(date, 'DD MMM YYYY HH:mm').local().format('DD MMM YYYY');
var m = moment("21 Sep 2017", 'DD MMM YYYY');
var formatted = m.locale("it").format("DD MMM YYYY");
$("#TestIT").text(formatted);
formatted = m.locale("en").format("DD MMM YYYY");
$("#TestEN").text(formatted);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment-with-locales.min.js"></script>

<div id="TestIT"></div>
<div id="TestEN"></div>

【讨论】:

    猜你喜欢
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多