Rails 4本地时间根据本地时区显示



我正在开发rails 4应用程序。我想显示我创建评论的时间。如果我在印度打开网站,那么时间应该显示在IST中(根据印度标准),如果我在美国,那么对于我在印度发表的相同评论,时间应该根据美国时区显示。

对于开发和生产,我需要在配置文件中做什么?

我需要更改数据库中的任何内容吗?

请帮帮我。

Rails总是以UTC(世界时)保存时间,并且服务器有一个设置,可以告诉它(服务器)运行在哪个时区

为了向客户端显示不同的时间,Rails(在服务器上运行)需要知道客户端所在的时区。这不在标准的请求头中,所以你需要让他们以某种方式提交信息。一旦你知道了他们的时区,你就可以确保你总是使用他们的时区向用户显示时间——这方面有帮助。

获取他们的时区可以明确地完成,例如,在他们的"我的账户"页面中给他们一个时区下拉列表,然后将其保存在他们的用户记录中,和/或如果你不知道的话,提前设置并强迫他们在弹出窗口中选择一个。

或者,你可以使用Javascript为他们做这件事,在cookie中传递它。有关如何做到这一点的示例,请参阅本文

http://thisbythem.com/blog/clientside-timezone-detection/

一个解决方案可以是将用户的时区存储在数据库中,编写一个过滤器ApplicationController中的around_action,它将从数据库字段中将Time.zone设置为Time_zone。

您可能需要查看rails api 中的Time.zone和TimeZone

这是一个railscast,你可以从评论和github链接中找到它。

相关内容

  • 没有找到相关文章

最新更新