【发布时间】:2012-09-21 03:00:04
【问题描述】:
我的日期方法在 Heroku 上无法正常工作。我创建了一个使用(GMT-05:00) Eastern Time (US & Canada) 的用户,并假设看到基于它具有的date 属性添加的产品。所以它应该说Added 1 Product Today,但这好像是前一天记录的方法本身。所以today 实际上是昨天,yesterday 实际上是后天。
这是我的方法:
def self.today
where(:date => Date.today)
end
def self.yesterday
where(:date => Date.yesterday)
end
def self.this_week
where(:date => Date.today.beginning_of_week..Date.today.end_of_week)
end
def self.last_week
where(:date => 1.week.ago.beginning_of_week..1.week.ago.end_of_week)
end
def self.this_month
where(:date => Date.today.beginning_of_month..Date.today.end_of_month)
end
def self.last_month
where(:date => 1.month.ago.beginning_of_month..1.month.ago.end_of_month).order('date desc')
end
所以我猜 Heroku 上的每个方法总是 -1 day,但不是在开发中。 Heroku 的时区和时间是:
Loading production environment (Rails 3.2.8)
irb(main):001:0> Time.now
Time.now
=> 2012-09-21 02:37:26 +0000
irb(main):002:0> Time.zone
Time.zone
=> (GMT+00:00) UTC
这对我来说是错误的,因为它在美国东部是 2012-09-20。
我想让这些方法适用于每个时区,而不仅仅是Eastern Timezone,那么我应该怎么做呢?如何让用户根据时区查看他们添加的产品?
谢谢。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3 heroku