momentJS默认语言环境是zh-tw,似乎无法覆盖它

时间:2015-05-19 22:05:33

标签: javascript angularjs momentjs angular-moment

我在我的Angular应用程序中从CDN中提取了momentJS库:

<script>
    moment.locale('en');
</script>

默认语言环境应该是英语(&#39; en&#39;)。但由于某种原因,我的应用程序中的默认语言环境是&#39; zh-tw&#39;。我发现这曾经是一个问题(请参阅herehere),但它应该是固定的。

即使我手动设置全局区域设置,也会被忽略:

在我的index.html文件中:

moment.locale('en');

在我的Angular控制器中:

var moment1 = moment(myDate);
moment1.locale('en');
var moment2 = moment(moment1).add(24, 'h');
moment2.locale('en');

现在唯一可行的是,如果我在每个时刻实例上设置语言环境:

{{1}}

2 个答案:

答案 0 :(得分:3)

如果您使用的是Angular,通常对我有用的是

.run(["moment", function(moment){
    moment.locale("en");
}]);

答案 1 :(得分:2)

我知道这个问题是去年发布的,但对于遇到zh-tw格式问题的用户来说,值得注意的是以下内容。

今天在使用格式化方法时出现了这个问题。幸运的是,在过去的几天里,这个问题有了更持久的解决方法。

您遇到的问题最初是在2013年(大约)解决的,后来的更新已经发布。无论出于何种原因,问题都会在更新2.10.3之前/之前的某个时间内发生,并且自此以后一直是个问题。然而,在2016年1月2日,他们发布了一个更新,随后解决了人们遇到的问题。更新至Moment 2.11.0会将语言默认值解析为zh-tw,并默认将其还原为en

虽然接受的答案是当时的修复,但我建议您从我的角度更新到最新版本的Moment,除了其他原因之外,还有一些解决问题的方法。

请访问以下链接,了解Moment 2.11.0中的所有更改,您感兴趣的问题位于ID #2735下。

Moment 2.11.0 - Changelog