1

私のクラスには、今日が何であるかを定義するメソッドがあります。

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

Time.zoneを、ユーザーがアプリケーションコントローラーでbeforeフィルターを使用しているのと同じにするようにしました。

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に関しては、ユーザーのタイムゾーンを東京に置いても、USEASTと見なされます。つまり、米国では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 に答える