我有一个使用谷歌地图的web应用程序(Rails 4)。当用户单击地图上的一个点时,Google地图API返回纬度和经度。现在,我想要得到那个经纬度上的当前时间我不确定用哪条路线来做这个。谢谢你的建议:
- 使用Google Timezone API:这里的问题是Google需要我发送时间戳。我的理解是时间戳是我从服务器发送到客户端的当前UTC时间,然后客户端的计算机将此时间戳发送到谷歌服务器。现在假设用户从晚上11:55到凌晨12:05在网站上。在12:05am,用户仍然有11:55pm作为时间戳(1天的差异),除非我刷新它。获取当前时间不应该这么复杂,不应该需要刷新等等。
- 使用TimeZone gem:我能想到实现这一点的方式是,当用户单击地图时,客户端发送一个Ajax调用到我的服务器,然后我的服务器发送一个请求到geonames.org,然后当前时间被发送到客户端。这里有两个服务器跳转,我预计会延迟。
有更简单/更快的解决方案吗?我愿意使用任何其他API, gem等
我的理解是时间戳是我从服务器发送到客户端的当前UTC时间,然后客户端的计算机将此时间戳发送到Google服务器。
时间戳是您决定发送的任何内容。当然,您可以让服务器生成一个时间戳,并让客户端保留它,然后将它传递给请求,但这样就会出现您所描述的行为。没有好的理由这样做。
如果你从客户端调用API,那么你的问题与Rails无关,而是与JavaScript有关。在那里,你可以让JavaScript从它运行的计算机的时钟中获得当前时间(根据问题评论中链接的答案)。
但是,rails运行在服务器上,所以如果您选择让rails从服务器调用API ,那么您将传递由rails代码生成的时间戳。