【问题标题】:Rails 3 ui datepickerRails 3 ui 日期选择器
【发布时间】:2011-04-21 21:20:06
【问题描述】:

我的 rails3 应用有一些奇怪的行为。

当我使用 jquery UI datepicker 选择日期时。我在我的日志中看到了这个

Parameters: {"commit"=>"Save", "log"=> {"log_date"=>"04/20/2011"} ....blah...b}
AREL (1.0ms)  INSERT INTO "logs" ("log_date") VALUES ('2011-04-19 22:00:00.000000')

我忽略了不相关的信息。

如您所见,Rails 无法正确翻译输入的日期。它(在这种情况下)将 20.apr 更改为 19.apr。

当我稍后打电话时

<%= log.log_date.strftime('%d.%m.%y') %> 

我得到了正确的日期,但是当我做这个查询时

@log_times = Log.group(:log_date)

所有日志都比他们预期的早了一天。

在控制台中,此示例中的日志如下所示

irb(main):017:0> Log.last
=> [#<Log id: 246,  log_date: "2011-04-19 22:00:00">]

所以,它保存一个日期到早期,但是当我在视图中显示它时它是正确的。

为什么?

我可以使用 getter 和 setter 来解决这个问题吗?

【问题讨论】:

    标签: ruby-on-rails jquery-ui datepicker


    【解决方案1】:

    默认情况下,Rails 是为处理时区而构建的。存储在数据库中的时间以 UTC 格式存储,Rails 应该自动将其转换为配置的本地时间。

    您的 application.rb 文件中是否设置了config.time_zone?另外,我建议尽可能使用DateTime 而不是Time

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多