【问题标题】:How to display a DateTime in the timezone of a browser using Rails?如何使用 Rails 在浏览器的时区中显示 DateTime?
【发布时间】:2013-03-04 12:55:37
【问题描述】:

Rails 将所有 DateTimes 存储在 UTC 时区中。我现在需要在用户的浏览器报告他们所在的时区中向用户显示该时间。有没有简单的方法可以做到这一点?

使用最新的 Rails (3.2.13)。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 datetime ruby-on-rails-3.2 timezone


    【解决方案1】:

    在客户端(js)中:

    function set_time_zone_offset() {
        var current_time = new Date();
        $.cookie('time_zone', current_time.getTimezoneOffset());
    }
    

    在应用程序控制器中:

    before_filter :set_timezone 
    
    def set_timezone  
     min = request.cookies["time_zone"].to_i
     Time.zone = ActiveSupport::TimeZone[-min.minutes]
    end 
    

    信用:https://stackoverflow.com/a/5930596/643500

    【讨论】:

      【解决方案2】:

      有人将解决方案变成了宝石:

      https://github.com/basecamp/local_time

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 1970-01-01
        • 2017-12-28
        • 2016-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多