开发者

Rails 3 ui datepicker

I have some strange behavior in my rails3 app.

When I pick a date with jquery UI datepicker. I see this in my log

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

I've left out the irrelevant information.

As you see Rails does not translate the date inputted correct. It changes (in this case) 20.apr to the 19.apr.

When I later call

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

I get the corect date, but when I do this query

@log_times = Log.group(:log_date)

The logs are all one day earlier than they sould be.

In the console the log in this example looks like this

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

So, its save one date to early, but when I show it in the view it's correct.

Why?

Could I use a getter and setter to fix this?


Rails is built to handle timezones by default. Times stored in the database are stored in UTC and Rails is supposed to handle translating that into the configured local time automatically.

Do you have config.time_zone set in your application.rb file? Also, I'd recommend using DateTime rather than Time when possible.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜