当我有用户的地址或邮政编码并使用它来查找他们的时区时,这会很有用,这样他们就不必在单独的字段中输入它。
最佳答案
我建议不要尝试从用户的邮政编码推断出时区。
给用户的问题:
“您的邮政编码是多少”不太可能经常更改。
它会改变,但可能不如“你在哪个时区”这个问题那么频繁。
例如,如果用户去某个地方旅行,他们的邮政编码没有改变,但他们的时区改变了。
如果您尝试询问“您所在的邮政编码是什么?”,用户可能不会知道,尤其是当他或她正在旅行时。
相反,我会尝试直接找出时区。
大多数平台都会为您提供执行此操作的方法。
例如,如果您正在为 .NET 编写桌面软件,您可以通过
- 使用 TimeZoneInfo 类获取当前时区,或者
- 将所有时间从服务器以UTC时间发送到客户端,然后使用DateTime.ToLocal Time将UTC时间转换为本地时间。
或者,如果您正在编写网络软件,那么您可以使用 Java 脚本从用户的网络浏览器获取时区并将其提交到服务器。
看看下面的日期函数:
http://www.w3schools.com/jsref/jsref_obj_date.asp
您可以使用各种日期函数推断时区。
有一个方法“getTimezoneOffset”,但它没有给出 +/-。因此,例如它会为 +1 和 -1 GMT 给出“1”,这可能是个问题。
但是,您可以做的是从服务器发送一个已知日期,使用转换方法将其转换为本地时间,然后将结果发送回服务器。
当您发送已知日期时,您可能应该将其作为毫秒偏移发送。这样您就可以避免任何文化问题(不同地方的日期格式不同)。
有一些 Win32 函数可以为您提供时区,我相信可能有 Unix、Mac 和 Java APIS 可以做同样的事情。
关于ruby-on-rails - 有没有办法根据地理编码位置获取时区的 UTC 偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/366966/