【发布时间】:2025-12-16 03:35:01
【问题描述】:
如果我运行 new Date().toLocaleDateString(),我会收到“2020 年 1 月 16 日。
如果有人在日期格式为 DD/MM/YYYY (16/1/2020) 的国家/地区运行我的代码,它会自动交换日期和月份吗?
【问题讨论】:
-
不是基于位置,而是基于locale。
标签: javascript
如果我运行 new Date().toLocaleDateString(),我会收到“2020 年 1 月 16 日。
如果有人在日期格式为 DD/MM/YYYY (16/1/2020) 的国家/地区运行我的代码,它会自动交换日期和月份吗?
【问题讨论】:
标签: javascript
如果您不指定locale 参数,则结果基于用户的浏览器默认语言环境。虽然这可能更多地对应于位置,但保证与他们当前的位置相匹配。这是用户的偏好。
例如,居住在美国海外的英国人可以选择将他们的浏览器区域设置为en-GB。在这种情况下,.toLocaleDateString() 将返回日期为DD/MM/YYYY,尽管用户在美国。
您可以通过Navigator接口确定用户当前的语言环境:
const getBrowserLocale = () => navigator.language || navigator.browserLanguage || (navigator.languages || ["en"])[0]
console.log( getBrowserLocale() );
有关详细信息,请参阅文档:.toLocaleDateString()
【讨论】: