Moment.js:根据浏览器语言设置日期格式
Moment.js : Format date according browser lang
我使用此代码以法语格式显示日期:
var dateToDisplay = moment(myDateInMS, "x").format("DD/MM/YYYY - hh:mm:ss"); // Output : "20/03/2016 - 12:35:32"
我想根据浏览器语言改进这个显示器,使其具有更好的显示效果。我怎么能利用瞬间做到这一点?
我不建议根据浏览器语言设置区域设置,因为这不是用户实际区域设置的明确信号。例如,用户可以使用英语操作系统,即使他/她讲法语。
话虽如此。从浏览器中读取语言并将Moment.js设置为相应的语言环境可以通过以下方式完成:
var localeData = moment.localeData();
switch (navigator.language || navigator.userLanguage) {
case 'fr':
localeData = moment.localeData('fr');
break;
}
localeData.longDateFormat('LL'); // the example 'LL' will output date in "D MMMM YYYY format"
请注意,这是在设置整个Moment.js实例的区域设置(这可能是您想要做的)。还要注意,从Moment.js 2.8.0开始,更改全局区域设置不会影响现有实例。
另请参见
- 全局更改区域设置
- 长日期格式
Moment实际上会搜索从浏览器中提取的区域设置的子字符串,以尝试选择正确的区域设置。因此,没有必要准备或创建案例陈述。例如,moment有es
作为区域设置,但没有es-mx
。如果浏览器设置为es-mx
,则区域设置函数查找es-mx
,如果找不到,则返回到es
。因此:
moment.locale('es-mx');
"es"
这意味着为了你的目的,你可以做:
moment.locale(navigator.userLanguage || navigator.language);
然后,在格式化日期时,使用一种特定于区域设置的格式,使其适合用户:
moment().format('LL')
"1 de abril de 2016"
moment().format('L')
"01/04/2016"
有关所有本地化格式及其应生成的内容,请参阅格式文档的本地化格式部分:http://momentjs.com/docs/#/displaying/format/
相关文章:
- 量角器-如何在量角器中设置默认的打字语言
- 获取网站访问者的区域设置(语言)
- 如何设置谷歌翻译默认语言
- Moment.js:根据浏览器语言设置日期格式
- 如何将谷歌自动完成表单的语言设置为英语
- 当区域设置设置为另一种语言时,如何从 momentjs 对象获取英语值
- JavaScript 设置具有语言值的 cookie
- NodeJS中API的设置语言
- 设置我的ASP.NET MVC 3项目自动感知正在运行的语言
- 根据语言首选项设置提供语言文件
- 在CodeMirror TextArea上设置默认语言
- bootstrap日期选择器全局设置语言
- 将语言代码转换为(dojo)区域设置代码
- 有没有一种方法可以检测当前的输入语言设置
- 如何根据用户语言设置日期格式并显示月份和日期
- 是否有一个已知的问题,全日历在Safari上以中文呈现(尽管有语言设置?)
- Facebook按钮的语言设置
- 获取Windows用户语言设置值
- 尝试为要翻译的语言设置 JSON 文件
- 谷歌翻译保存语言设置到cookie