0

オファーモデルがあります。コマンドラインからアクセスすると、次の形式で表示されます。

1.9.3p392 :058 > o = Offer.last
 => #<Offer id: 15, title: "Testing", valid_from: "2013-04-12 09:00:00", valid_until: "2013-04-12 14:00:00", created_at: "2013-04-12 18:31:54", updated_at: "2013-04-12 18:31:54"> 

この出力では、valid_from期待valid_untilどおりにフォーマットされています。ただし、それらに直接アクセスすると、別のものが得られます。

1.9.3p392 :059 > o.valid_from
   => Fri, 12 Apr 2013 05:00:00 EDT -04:00 

この問題は、私が内部に持っているこの関数に付属していますapp/models/offer_model.rb:

  def start_hour
    self.valid_from.strftime('%l').to_i unless self.valid_from.nil?
  end

上記のモデルでこのコマンドを実行すると、出力は5. 9この場合は元に戻ると思います。start_hourこの場合、タイムゾーンに合わせて調整された時間を返すにはどうすればよいですか?

4

1 に答える 1

0

config/application.rb で使用しているタイムゾーンは何ですか? Rails は、このファイルで設定されたタイム ゾーンに合わせて印刷日付を調整します。

于 2013-04-15T16:05:21.837 に答える