答案 0 :(得分:8)
有多种方法可以确定区域设置。按有用性的降序排列,这些是:
Sweden
。只能在服务器的帮助下完成。主要优点是它非常可靠。准确性将是国家或地区的免费服务,城市或地区的付费。
答案非常准确,通常不超过10米。原则上,它可以在客户端工作,尽管您可能想要执行坐标 - >在服务器上查找国家/地区主要缺点是并非所有设备都具有GPS或WiFi位置,并且通常需要明确的用户同意。
Accept-Language
标头(或在服务器的帮助下),并提取区域设置信息。使用瑞典VPN在意大利度假的美国人将登记为美国。缺点是这是一个非常容易改变的设置。例如,世界各地的英语使用者可能更喜欢en-US
设置,以避免机器翻译的文本。在现代浏览器上(写作不是IE / Edge,只有Safari 11+),您也可以请求navigator.languages。
navigator.language
是navigator.languages
标头的第一个元素。 navigator.languages的所有注意事项都适用。最重要的是,此信息有时可能只是没有任何语言环境的语言(即en
而不是en-US
)。
使用其他第三方服务。例如,如果用户通过诸如Facebook连接的单点登录系统登录,则可以请求用户的家乡。此信息通常非常不可靠,需要第三方。
答案 1 :(得分:0)
另一个选择是使用(internationalization API)
console.log(Intl.DateTimeFormat().resolvedOptions().timeZone)