ruby-on-rails - 如何为我的 Rails 应用程序提供通用时间支持?

标签 ruby-on-rails ruby-on-rails-3 datetime

我正在构建一个 Rails 应用程序,用户可以在其中发布他们知道的面试详细信息。该表单有一个输入字段面试时间,它是日期时间选择器。我想为该应用程序提供普遍支持。

实际问题:

假设我在生产服务器中配置了 IST 时区。那么如果来自日本的用户选择将以 IST 时区解析的采访时间。结果将是不正确的采访时间。

显示正确的采访时间。

1.我需要从用户那里获取时区吗?(可能是一个选择框)

2.是否有其他选项可以自动检测时区?

谢谢大家:)

如果有不清楚的地方,请在问题下方添加评论。

最佳答案

我也有类似的问题。我保留了默认的 Rails 配置,因此所有时间都以 UTC 形式存储在数据库中,并且我使用了 ActiveSupport::TimeZone 中的以下方法:

  • 当我需要保存表单中的日期时,我使用 local_to_utc 将日期从本地转换为 UTC:

    ActiveSupport::TimeZone[my_timezone].local_to_utc(date)
    
  • 当我需要显示数据库中的日期时,我使用了

    ActiveSupport::TimeZone[my_timezone].utc_to_local(date)
    

这样,数据库中保存的所有日期均采用 UTC 格式,但由用户按本地时间处理,每个用户的时间可能不同。您可以将时区存储在用户级别(数据库中的字符串字段),和/或使用 select helper生成一个选择字段。

关于ruby-on-rails - 如何为我的 Rails 应用程序提供通用时间支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481338/

相关文章:

ruby-on-rails - 在 Rails 4 中引发自定义错误

ruby-on-rails - css 属性在 Rails 应用程序中继承

ruby-on-rails - Rails 从两个 Controller 调用相同的操作代码(有一点不同)

ruby-on-rails-3 - Rails 身份验证 - *不*使用 Devise 时的潜在陷阱?

python - Django DateTimeField auto_now_add 不工作

ruby-on-rails - 理解突变失败

ruby-on-rails - rake db :migrate failed

ruby-on-rails - 通过delayed_job 使用Gibbon gem 时出错?

python - 如何从 python 中的 tzfile 中查找时区名称

R strftime() 行为