DateTime.yesterday返回今天的日期而不是昨天

时间:2012-01-03 02:21:28

标签: ruby ruby-on-rails-3

1.9.3p0 :020 > DateTime.now
 => Mon, 02 Jan 2012 21:10:36 -0500 
1.9.3p0 :021 > DateTime.yesterday
 => Mon, 02 Jan 2012 

我很困惑为什么会这样。任何的想法?今天应该是1月2日,昨天是1月1日。

这也很奇怪。

1.9.3p0 :023 > 1.days.ago
 => Mon, 02 Jan 2012 02:20:22 UTC +00:00 

1 个答案:

答案 0 :(得分:3)

您似乎需要设置时区。试试这个:

> z = "Pacific Time (US & Canada)" 
 => "Pacific Time (US & Canada)" 
> 0.days.ago.in_time_zone(z)
 => Mon, 02 Jan 2012 18:37:50 PST -08:00 

然后将这样的内容添加到application.rb:

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