我的日期方法在 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
所以我想它总是-1 day
适用于 Heroku 上的每种方法,但不是在开发中。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
我应该怎么做呢?如何让用户根据时区查看他们添加的产品?
谢谢你。