我要编写一个RoR移动应用程序,该应用程序为我提供给定电话号码的国家当前时间及其区号。有一个好的api吗?
不是个好主意。
对于有几个不同时区和许多区号的国家,你会怎么做?时区和区号不一定是一一对应的。
例如,在美国,928区号覆盖了亚利桑那州的大部分地区,包括两个不同的时区,因为在该州的东北部,纳瓦霍族实行夏令时,而亚利桑那州的其他地区则不实行夏令时。因此,在一年中的部分时间里,928区号的两个不同部分之间有一个小时的时差。
一个更清晰的例子——605区号覆盖了整个南达科他州。这个州的西部使用山地时间,东部使用中部时间。我相信在美国之外还有很多这样的例子。
而且,人们旅行时都带着手机。我知道我头顶上有三个人在搬到一个新的区号后保留了他们的电话号码。
此外,移动号码可携性和本地号码可携性允许人们移动到其他地区并保留他们的电话号码-包括区号。因此,区号只能告诉您号码最初的来源,而不能告诉您号码当前的位置。
如果您可以将Javascript添加到您的项目中,那么您可能要尝试ChronoMouse.js,这将有助于获得当前时间,GMT偏移量,时区名称,位置,首都,夏令时法律,或任何美国/加拿大地区代码或国家代码的夏令时状态。
对于国家代码,信息以首都为基础。
例如:console.log( getLocalInfo('+49').time.display );
// 15:07
更多示例和文档,参见www.chronomouse.com。
注意:我是这个项目的作者。
这可以帮助您将国家代码映射到国家名称https://github.com/hexorx/countries
nations是ISO 3166标准中每个国家的各种有用信息的集合。它包含以下标准ISO3166-1(国家),ISO3166-2(州/分区),ISO4217(货币)和E.164(电话号码)的信息。gem还添加了一个country_select帮助器。我会添加任何基于国家的数据,我可以访问。我希望这是一个存储库,为所有基于国家的信息。