如何在Rails中设置DateTime以匹配浏览器显示的时区?

2026-04-11 17:081阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计318个文字,预计阅读时间需要2分钟。

如何在Rails中设置DateTime以匹配浏览器显示的时区?

Rails默认将所有DateTime存储在UTC时区中。您需要将这些时间转换为用户的本地时区并显示,以下是一个简单的方法:

1. 使用`Time.zone`来设置用户的时区。

2.使用`in_time_zone`方法来转换时间。

在控制器中,可以这样实现:

ruby

class YourController

def 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).

如何在Rails中设置DateTime以匹配浏览器显示的时区?

有人把解决方案变成了一个宝石:

github.com/basecamp/local_time

本文共计318个文字,预计阅读时间需要2分钟。

如何在Rails中设置DateTime以匹配浏览器显示的时区?

Rails默认将所有DateTime存储在UTC时区中。您需要将这些时间转换为用户的本地时区并显示,以下是一个简单的方法:

1. 使用`Time.zone`来设置用户的时区。

2.使用`in_time_zone`方法来转换时间。

在控制器中,可以这样实现:

ruby

class YourController

def 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).

如何在Rails中设置DateTime以匹配浏览器显示的时区?

有人把解决方案变成了一个宝石:

github.com/basecamp/local_time