4

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

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

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

4

7 回答 7

5

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

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

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

当然,您的结果远非完美,但希望您能从睡眠中唤醒更少的客户。

于 2009-01-26T21:20:59.303 回答
1

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

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

于 2009-01-27T12:26:51.813 回答
0

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

于 2009-01-26T21:12:03.877 回答
0

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

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

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

问候

于 2009-01-26T21:18:37.107 回答
0

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

于 2009-01-26T21:28:37.663 回答
0

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

现在,如果这是一个手机应用程序,它似乎可以使用名为 NITZ 的东西

于 2009-01-26T21:30:54.103 回答
0

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

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

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

于 2009-01-27T23:09:09.800 回答