Ruby on Rails time zone strange behaviour
There is task model with attributes when and duration.
create_table "tasks", force: true do |t|
...
t.datetime "when"
t.integer "duration"
...
end
I wrote method for checking if task is active so I can show it on page.
This is active method:
def active?
if (self.when + self.duration) > Time.now
true
end
end
I tried in console to inspect object:
t.when + t.duration
=> Sun, 08 Sep 2013 01:01:00 UTC +00:00
DateTime.now
=> Sun, 08 Sep 2013 01:57:13 +0200
t.active?
=> true
It's true but I entered 1:01 time and 1 minute for duration and I hoped it
shouldn't be true.
It seems that when column in database is not saved in correct time zone,
so it gives incorrect results. How to solve this issue?
No comments:
Post a Comment