2011-04-21 62 views
0

我在我的rails3应用程序中有一些奇怪的行为。Rails 3 ui datepicker

当我选择与jQuery UI日期选择器的日期。我在我的日志中看到这个

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') %> 

我得到的corect日期,但是当我做这个查询

@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来解决这个问题吗?

回答

2

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

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

+0

感谢您指引我朝着正确的方向 – 2011-04-25 18:00:45