我希望我的网页可以显示用户所在地区的日期和时间。
现在大多数浏览器都支持 Intl
(请参见Can I Use Intl),我可以通过使用 Intl.DateTimeFormat().resolvedOptions().timeZone
来获取浏览器时区。我希望能够使用当前语言环境发出日期时间,尝试了以下操作:
var date = new Date(2017, 11, 31, 23, 59, 59);
var format = new Intl.DateTimeFormat(
undefined, // locale
{
year: "numeric",
month: "numeric",
day: "numeric",
hour: "numeric",
minute: "numeric",
}
)
console.log(format.format(date))
在这些设置下,输出的时间采用12小时制,就好像我的区域设置是“en-us”一样。只要我将Chrome浏览器切换为使用捷克语作为其显示语言,时间就会切换为24小时格式。
我认为我可能漏掉了一些显而易见的东西 - 网页真的无法使用用户正在使用的区域设置,还是这是Chrome Intl实现中的某个错误或不完整性?
document.documentElement.lang
(如果设置了),而不是读者或导航器的语言环境。 - JukkaP