当编写网站并格式化日期时,我希望使用用户在其浏览器中设置的语言环境。
例如,如果用户在Chrome的chrome://settings/languages
设置中自定义了语言环境,则我想使用该值。
然而,当我在这样的浏览器控制台中运行以下代码时,我会得到两个不同的值。
[window.navigator.language, new Intl.DateTimeFormat().resolvedOptions().locale]
// Array [ "en-AU", "en-US" ]
navigator.language
给出了预期的值,但new Intl.DateTimeFormat().resolvedOptions().locale
没有。
我认为MDN对这两个项目的解释都表明它们应该返回相同的值:
- NavigatorLanguage.language
返回表示用户首选语言的字符串
- Intl.DateTimeFormat locale参数
要使用浏览器的默认区域设置,请省略此参数或传递undefined。
这两个调用是否应该返回用户在其浏览器设置中配置的区域设置?
en-US
,但我的地区设置为de
并且时间格式也是德国的,但是当调用Intl.DateTimeFormat().resolvedOptions().locale
时,它返回的是en-US
而不是应该返回的en-DE
。 - Martin Braun