1

我的课堂上有一个方法可以定义今天是什么。

class Practice
  attr_accessible :date
  def self.today
    where(:date => Date.today)
  end
end

我让我的 Time.zone 与用户在我的应用程序控制器上使用之前的过滤器相同。

before_filter :set_user_time_zone

private

def set_user_time_zone
  if signed_in?
    Time.zone = current_user.time_zone
  end
end

但是当谈到 Date.today 时,即使将用户的时区放在东京,它也会将其视为美国东部。所以它在美国是 8 月 19 日,超过了 8 月 20 日。我怎样才能将它改为 8 月 20 日或时区的日期?

4

1 回答 1

4

而不是改变Time.zone,你可以使用in_time_zone

Time.current.in_time_zone(current_user.time_zone).to_date

您可能必须将时区作为方法参数传递,因为current_user通常在模型中不可用。

于 2012-08-19T23:24:37.767 回答