如何在Rails中设置DateTime以匹配浏览器显示的时区?
- 内容介绍
- 文章标签
- 相关推荐
本文共计318个文字,预计阅读时间需要2分钟。
Rails默认将所有DateTime存储在UTC时区中。您需要将这些时间转换为用户的本地时区并显示,以下是一个简单的方法:
1. 使用`Time.zone`来设置用户的时区。
2.使用`in_time_zone`方法来转换时间。
在控制器中,可以这样实现:
ruby
class YourControllerdef set_time_zone Time.zone=current_user.time_zone # 假设用户模型有一个time_zone属性 end
def your_action @datetime=DateTime.now.in_time_zone # 使用@datetime进行后续操作 endend
在视图中,您可以这样显示转换后的时间:
erb
这样,当用户访问`your_action`动作时,就会根据他们的时区显示当前时间。
关于您提到的宝石,看起来您可能指的是一个gem,它可以帮助自动转换时间。但根据您的要求,这里没有使用外部gem。如果您需要查找这样的gem,可以在Rails社区或Gemfile中搜索相关工具。
Rails将所有DateTime存储在UTC时区中.我需要在他们的浏览器报告他们所在的时区中向用户显示该时间.有一种简单的方法吗?使用最新的Rails(3.2.13).
github.com/basecamp/local_time
本文共计318个文字,预计阅读时间需要2分钟。
Rails默认将所有DateTime存储在UTC时区中。您需要将这些时间转换为用户的本地时区并显示,以下是一个简单的方法:
1. 使用`Time.zone`来设置用户的时区。
2.使用`in_time_zone`方法来转换时间。
在控制器中,可以这样实现:
ruby
class YourControllerdef set_time_zone Time.zone=current_user.time_zone # 假设用户模型有一个time_zone属性 end
def your_action @datetime=DateTime.now.in_time_zone # 使用@datetime进行后续操作 endend
在视图中,您可以这样显示转换后的时间:
erb
这样,当用户访问`your_action`动作时,就会根据他们的时区显示当前时间。
关于您提到的宝石,看起来您可能指的是一个gem,它可以帮助自动转换时间。但根据您的要求,这里没有使用外部gem。如果您需要查找这样的gem,可以在Rails社区或Gemfile中搜索相关工具。
Rails将所有DateTime存储在UTC时区中.我需要在他们的浏览器报告他们所在的时区中向用户显示该时间.有一种简单的方法吗?使用最新的Rails(3.2.13).
github.com/basecamp/local_time

