【问题标题】:Does .toLocaleDateString() automatically format date based on location?.toLocaleDateString() 是否会根据位置自动格式化日期?
【发布时间】:2025-12-16 03:35:01
【问题描述】:

如果我运行 new Date().toLocaleDateString(),我会收到“2020 年 1 月 16 日。
如果有人在日期格式为 DD/MM/YYYY (16/1/2020) 的国家/地区运行我的代码,它会自动交换日期和月份吗?

【问题讨论】:

标签: javascript


【解决方案1】:

如果您不指定locale 参数,则结果基于用户的浏览器默认语言环境。虽然这可能更多地对应于位置,但保证与他们当前的位置相匹配。这是用户的偏好。

例如,居住在美国海外的英国人可以选择将他们的浏览器区域设置为en-GB。在这种情况下,.toLocaleDateString() 将返回日期为DD/MM/YYYY,尽管用户在美国。

您可以通过Navigator接口确定用户当前的语言环境:

const getBrowserLocale = () => navigator.language || navigator.browserLanguage || (navigator.languages || ["en"])[0]

console.log( getBrowserLocale() );

有关详细信息,请参阅文档:.toLocaleDateString()

【讨论】: