特定纬度和经度的当前时间

时间:2014-07-16 20:17:59

标签: ruby-on-rails google-maps google-maps-api-3 timezone

我有一个使用谷歌地图的网络应用程序(Rails 4)。当用户点击地图上的某个点时,Google地图API会返回纬度和经度。现在,我想获得当前时间的纬度和经度,我不确定采取哪种方式来做到这一点。我很感激你的建议:

  • 使用Google Timezone API:此处的问题是Google要求我发送时间戳。我的理解是时间戳是我从服务器发送到客户端的当前UTC时间,然后客户端的计算机将此时间戳发送到Google服务器。现在假设用户在11:55 pm到12:05 am在网站上。在凌晨12:05,用户仍然在晚上11:55作为时间戳(1天差异),除非我刷新它。获取当前时间不应该这么复杂,需要我提神等等。
  • 使用TimeZone gem:我可以想到实现这一点的方法是当用户点击地图时,客户端向我的服务器发送Ajax调用,然后我的服务器向geonames.org发送请求然后当前时间是发送给客户。这里有两个服务器跳跃,我希望延迟。

更简单/更快的解决方案?我愿意使用任何其他API,gem等。

1 个答案:

答案 0 :(得分:1)

  

我的理解是时间戳是我从服务器发送到客户端的当前UTC时间,然后客户端的计算机将此时间戳发送到Google服务器。

时间戳是您决定发送的任何内容。当然,您可以让服务器生成时间戳并让客户端保留它,然后将其传递给请求,但之后您将拥有您描述的行为。没有充分的理由这样做。

如果您从客户端调用API,那么您的问题与Rails无关,而与JavaScript有关。在那里,你可以让JavaScript从运行它的计算机的时钟中获取当前时间(根据问题评论中链接的答案)。

但是,rails在服务器上运行,因此如果您选择让Rails从您的服务器调用API ,那么您将传递由您生成的时间戳Rails代码。