确定用户的时区

确定用户的时区

Web服务器是否有一种标准的方法可以在网页中确定用户的时区?

可能来自HTTP头或部分user-agent弦乐?


收到一只叮咚
浏览 495回答 4
4回答

隔江千里

-new Date().getTimezoneOffset()/60;方法getTimezoneOffset()将您的时间从格林尼治时间减去并返回分钟数。所以,如果你住在格林尼治标准时间-8,它将返回480。把它分成几个小时除以60。另外,注意这个标志与你需要的正好相反-它是计算格林尼治标准时间与你的时区的偏移量,而不是你的时区与格林尼治标准时间的偏移量。要解决这个问题,只需乘以-1。

HUX布斯

最受欢迎的?确定我所见过的时区的方法很简单询问用户自己。如果您的网站需要订阅,可以将其保存在用户的配置文件数据中。对于Anon用户来说,日期可以显示为UTC或GMT或其他类似的。我不是想成为一个聪明的人。只是有时候有些问题在任何编程环境之外都有更好的解决方案。

料青山看我应如是

到目前为止,还没有报告客户端时区的HTTP报头,尽管建议将其包括在HTTP规范中。如果是我,我可能会尝试使用客户端JavaScript获取时区,然后使用Ajax或其他方法将其提交给服务器。

幕布斯6054654

JavaScript是获取客户端本地时间的最简单方法。我建议使用XMLHttpRequest若要发回本地时间,如果失败,则返回根据其IP地址检测到的时区。就地理定位而言,我用了MaxMind GeoIP虽然我不确定它们是否提供时区数据,但它在几个项目上工作得很好。这是一个你付费的服务,他们每月更新你的数据库。它们以多种网络语言提供包装。
打开App,查看更多内容
随时随地看视频慕课网APP