Ruby on rails Rails 3用户界面日期选择器
我的rails3应用程序中有一些奇怪的行为 当我用jQueryUIDatePicker选择日期时。我在日志中看到了这一点Ruby on rails Rails 3用户界面日期选择器,ruby-on-rails,jquery-ui,datepicker,Ruby On Rails,Jquery Ui,Datepicker,我的rails3应用程序中有一些奇怪的行为 当我用jQueryUIDatePicker选择日期时。我在日志中看到了这一点 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') 我遗漏了不相关的信息 如您所见
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无法正确转换输入的日期。它将(在本例中)从4月20日更改为4月19日
当我稍后打电话时
<%= log.log_date.strftime('%d.%m.%y') %>
日志都比预期的早了一天
在控制台中,本例中的日志如下所示
irb(main):017:0> Log.last
=> [#<Log id: 246, log_date: "2011-04-19 22:00:00">]
irb(main):017:0>Log.last
=> [#]
因此,它将一个日期保存为“早”,但当我在视图中显示它时,它是正确的
为什么?
我可以使用getter和setter来解决这个问题吗?Rails默认用于处理时区。存储在数据库中的时间以UTC存储,Rails应该能够自动将其转换为配置的本地时间 在application.rb文件中是否设置了
config.time\u zone
?此外,我建议尽可能使用DateTime
而不是Time
irb(main):017:0> Log.last
=> [#<Log id: 246, log_date: "2011-04-19 22:00:00">]