我需要以本地化格式显示日期,所以我使用了
moment().format('l');
Moment JS https://momentjs.com/#multiple-locale-support
的功能它在不同的系统/浏览器中无法正常工作
问题的根本原因是Moment将当前区域设置读取为" en"即使环境是法国(" fr")
console.log('moment lang: '+moment.lang());
console.log('userLanguage: '+window.navigator.userLanguage);
console.log('language: '+window.navigator.language);
产生的结果:
moment lang: en
userLanguage: fr-FR
language: fr-FR
如果我明确设置
,Moment将给出正确的区域设置格式化日期 moment().locale(window.navigator.userLanguage||window.navigator.language);
我是否真的需要在Moment中明确设置区域设置,或者我做错了什么?
关于重复问题的说明:问题是Momentjs如何读取区域设置。
答案 0 :(得分:1)
是的,您已使用moment.locale
设置了所需的区域设置:
默认情况下,Moment.js附带英语(美国)语言环境字符串。如果您需要其他语言环境,可以将它们加载到Moment.js中供以后使用。
要加载区域设置,请将密钥和字符串值传递给
moment.locale
。加载语言环境后,它将成为活动的语言环境。要更改活动区域设置,只需使用加载区域设置的键调用
moment.locale
。
请注意,lang在2.8.1
中已弃用// Deprecated in 2.8.1 moment.lang(String);