使用Moment.js进行语言环境检测


71

我在项目中使用Moment.js,格式设置如下:

var date = moment.unix(1318781876);
return date.format('LLLL');

当文档说明支持多种语言环境时。我想知道moment.js是否会自动检测语言环境,还是我需要检测语言环境并将其传递给moment?

更新 我的目标是确保显示的日期采用用户所在地区的格式。例如,在美国,短日期格式为mm / dd / yy,而在英国为dd / mm / yy

Answers:


149

从momentjs文档开始:

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

您可以通过以下方式更改它:

moment.locale(locale);

要使用javascript获取用户的语言环境,您可以执行以下操作:

var locale = window.navigator.userLanguage || window.navigator.language;

请参阅:http : //momentjs.com/docs/#/i18n/changing-locale/

JavaScript来检测浏览器语言偏好


2
因此,有理由认为,可以在加载moment-with-locale.js之后直接使用以下代码,以确保moment在整个页面上为用户使用正确的语言环境:moment.locale(window.navigator.userLanguage ||窗口。 navigator.language)。这是正确的说法吗?
布拉德(Brad)

如果用户使用英语但居住在中国怎么办?
李李

3
@GreyLi是为了确保正确显示日期(即英语格式),OP不在谈论时区。在您的情况下,显示格式为英语。
Joanvo '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.