将美国邮政编码映射到时区
当用户向我们的应用程序注册时,我们可以在我们根据国家数据库对其进行验证时推断出他们的邮政编码。 从这个邮政编码中确定他们时区的潜在猜测的最佳方法是什么?
我们正在尽量减少我们明确要求他们提供的数据量。 如果我们最好的猜测是错误的,他们将能够在以后手动设置时区。 我知道邮政编码无助于搞清楚美国以外的时区,但在这种情况下,我们不得不手动询问,而且我们主要与美国打交道。
我发现了很多邮政编码数据库,迄今为止只有少数几个包含时区信息,但那些不是免费的,比如这个。 如果为了做到这一点而支付订购服务是绝对必要的,那么这将不值得,而且我们只需要明确地询问用户。
虽然语言不是特别重要,因为我可以根据需要转换东西,但我们使用的是PHP和MySQL。
我刚刚找到一个免费的zip数据库,其中包含时间偏移和参与DST。 我非常喜欢Erik J的回答,因为它可以帮助我选择实际的时区而不仅仅是偏移量(因为您从来不能完全确定规则),但我想我可能会先从此开始,然后让它尝试根据偏移/ dst配置找到最佳时区匹配。 我想我可能会尝试设置一个简单版本的Development 4.0的答案,以检查我从zip信息中得到的作为完整性测试的答案。 这绝对不是我希望的那么简单,但是组合应该让我至少有90%的用户时区确定。
大多数州只有一个时区(尽管有一些例外)。 大多数邮政编码不跨越国界(尽管有一些例外)。
通过结合这些事实,您可以快速提出自己的每个时区的时区列表。
以下是每个州的邮政编码范围列表,以及每个时区的州名单。
您可以使用此链接或Google地球查看邮政编码的边界并与时区地图进行比较,以便将时区与时区线分开的州的时区映射到时区。
与您打交道的大多数非美国国家可能只有一个时区。 您可能需要查看您的前N位非美国访客来自哪里,并查找他们的时区。
我创建了一个开源(MIT许可)的MySQL数据库表,它交叉引用邮政编码和时区,并将其上传到sourceforge.net:
http://sourceforge.net/projects/zip2timezone/files/
它来源于四个位置(主要Yahoo PlaceFinder API - 感谢@Chris N)
请参阅自述文件以获取更多信息和说明。
链接地址: http://www.djcxy.com/p/35815.html上一篇: Mapping US zip code to time zone
下一篇: Filter by zip code, or other location based data retrieval strategies