Rails中的时间行为

时间:2012-10-09 14:01:31

标签: ruby-on-rails ruby time

  

可能重复:
  UTC time resets to 2000-01-01 (ruby). How do I prevent the time from resetting?

在我的application.rb中,我有:

config.time_zone = "Eastern Time (US & Canada)"

如果在我的申请中,我显示:

<%= Time.now %>

一切看起来都像我期望的那样(“2012-10-09 09:20:39 -0400”)。

我还有一个Session模型,其属性为start'和'end',类型为Time

如果在我的应用程序代码中,我创建了一个Session并设置了s.start=Time.now,则时间会在数据库中显示为UTC时间,如果为应用程序进行了翻译,则可以使用2000-01-01的日期,如果我有类似的话,在应用程序中显示相同的方式:

<%= s.start %>

此外,如果我稍后使用end填充“s.end = Time.now”属性,我会得到类似的2000-01-01和UTC时间值。同时,我将elapsed时间属性设置为:

s.elapsed = s.end - s.start

在数据库中,elapsed显示为极大数字(403056003),即使startend之间的差异只有几秒钟。

如果我稍后在我的应用中显示s.elapsed和(s.end - s.start),s.elapsed会显示数据库中的大号(显然),但显示s.end - s.start的计算正确!

对不起,如果这是漫无边际的。我显然缺少一些基本的东西,但无法到达那里。

0 个答案:

没有答案