根据电话号码计算人的时区(GMT 偏移量)?

问题描述 投票:0回答:8

我收到了根据某人的电话号码显示其当地时间的请求。我知道我们当地的 GMT 偏移量,因此我可以通过我们拥有的数据库表来处理美国电话,该数据库表将美国邮政编码链接到 GMT 偏移量(例如 -5)。但我不知道如何转换非美国电话号码或国家/地区名称(这些人显然没有邮政编码)。

如果您关心的话,我的雇主学院希望向我们的校友募集捐款,并在合理的时间内进行。

很抱歉,我没有明确声明我正在考虑家庭电话号码。所以漫游不是问题。我正在寻找一些参考表或 Oracle 应用程序,我可以从中获取此信息。

sql oracle timezone-offset
8个回答
5
投票

佛罗里达州有两个时区,但许多国家只有一个时区。您需要此表:http://en.wikipedia.org/wiki/List_of_country_calling_codes。通过查找 NANPA 国家/地区的 1 和区号(这些国家/地区使用与美国相同的 1+区号分配)、7 来解析电话号码中的国家/地区代码,俄罗斯或哈萨克斯坦的区号为 7。如果不匹配,请检查该号码是否以 2 位呼叫前缀之一开头,然后是 3 位呼叫前缀。

请记住,号码的前几位数字可能是国际拨号前缀,而不是电话号码的正确组成部分。

对于跨越多个时区的国家/地区,请查看是否可以从其国家电信监管机构获取分配信息。对于美国和其他 NANPA 国家/地区,请查看 http://www.nanpa.com/ .

当然,您的结果远非完美,但希望您能将更少的顾客从睡梦中吵醒。


1
投票

当地时间是一回事,但如果您有全球客户,还需要考虑当地的习惯。

人们在挪威通常比西班牙更早睡觉(而且他们位于同一时区)。


0
投票

您也许可以让电话公司向您提供位置数据(固定电话应该存在此信息,手机也必须存在此信息),但需要付费。


0
投票

有些国家很容易,因为它们位于同一个时区。看看欧洲,只需使用国际电话代码就可以增加数百万人。 +47 代表挪威等

电话号码分配通常由国家电信机构完成,因此您可能可以免费获得信息。

正如您所知,这只会考虑默认时区,因为它们当时可能位于地球上的任何地方。此外,时区之间的数字分配可能根本没有区别,因此该方法存在缺陷,但对于提供默认设置可能有用。

问候


0
投票

查看电话簿。我们有相当多的页面将区号映射到国家/省/州。然后您必须将地理位置映射到时区,但这非常简单。


0
投票

不可能。如果我向东(美国西海岸)行驶约 400 英里,那么我会通过在 YYY 时区中使用 XXX 号码来破坏您的算法。

现在,如果这是一个手机应用程序,那么使用 称为 NITZ 的东西似乎确实可行。


0
投票

我认为 Danie、Bortzmeyer 和其他人对这个问题的思考过度了。这不是为了最大化调用窗口,而是为了找到一个可接受的时间。

我们以美国为例,仅考虑 4 个主要时区。假设我们将可接受的时间定义为上午 10 点至晚上 7 点。我怀疑即使是挪威的单身农民也会在晚上 7 点之前到达。

因此,如果您知道手机在美国,请不要在下午 1 点之前拨打任何电话。这样,如果他们在纽约或洛杉矶,时间仍然是上午 10 点之后。晚上7点以后就没有电话了。谁在乎这是佛罗里达主干道还是一小时后的狭长地带?达拉斯或埃尔帕索,也是同一州但不同时区。对于美国,过滤 AK 和 HI。唯一严重困难的国家是俄罗斯——时区很多。


0
投票

你可以找一个电话查询服务,比如Signalwire提供的服务,当然如果这个人在东海岸度假,但电话号码是来自加州,那么你就会得到“错误”

https://developer.signalwire.com/rest/phone-number-lookup/

© www.soinside.com 2019 - 2024. All rights reserved.