我可以使用jQuery获取客户端的时区名称吗?
示例:太平洋标准时间、格林威治标准时间,如下所示:https://en.wikipedia.org/wiki/List_of_time_zones_by_country
最佳答案
Can I get the name of the time zone of the client by using jQuery?
没有。 jQuery 只有一个日期/时间函数,即 $.now()
。
如果您指的是JavaScript,答案仍然是否。您只能从date.getTimezoneOffset()
获取时区偏移。您无法获取时区 - 至少在所有浏览器中都无法获取时区。引用the timezone tag wiki的部分标题为:“时区!=偏移量”
您可以使用 jsTimeZoneDetect 猜测时区。图书馆,但这只是一个猜测。它可能准确,也可能不准确。
您现在还可以使用moment.js与 moment-timezone添加在。现在,它支持使用 moment.tz.guess()
进行时区猜测。
如果您可以保证您的用户在完全支持 ECMAScript Internationalization API 的环境中运行,您可以像这样获取用户的时区:
Intl.DateTimeFormat().resolvedOptions().timeZone
您可以查看compatibility table ,在 DateTimeFormat
下 - resolvedOptions().timezone 默认为主机环境
以确定这将在哪些环境中工作。
老实说,最好的办法就是为用户提供一个可以选择时区的屏幕。您可以使用下拉列表,也可以使用基于 map 的时区选择器 - like this one 。您可以使用 jsTimeZoneDetect 作为默认值,但您的用户应该能够更改它。
此外,所有这些都会为您提供 IANA 时区标识符,例如 America/Los_Angeles
。但您给出的示例似乎是 Windows 时区 ID(与 .net 中的 TimeZoneInfo
一起使用)。您应该阅读the timezone tag wiki ,然后还有这个问题:How to translate between Windows and IANA time zones?
关于jquery - 获取时区名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18246547/