私は次のようなことをしてみました
Time.now + 5.days
しかし、2.years
などのようなことができることを見て、非常に感銘を受けたことを漠然と覚えていても、それはうまくいきません。
Rails 3でそれを行うにはどうすればよいですか?
つかいます
Time.now + 10.days
あるいは
10.days.from_now
両方とも間違いなく機能します。 RubyだけでなくRailsにいるのですか?
あなたが間違いなくRailsにいるなら、どこからこれを実行しようとしていますか?アクティブサポートをロードする必要があることに注意してください。
days
、years
などはアクティブサポートの一部です。したがって、これはirb
では機能しませんが、Rails console
では機能するはずです。
これは間違いなく機能し、現在の日付に日を追加する必要がある場合はいつでもこれを使用します:
Date.today() + 5
参照用のその他のオプション
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
私が知っているすべてのオプションをリストしてください:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
それでは、タイムゾーンを気にする場合、それらの違いは何ですか:
[1, 4]
システムタイムゾーンあり[2, 3]
Railsアプリの設定タイムゾーン[5]
結果に時刻が含まれていない日付のみRailsでこれを試してください
Time.new + 10.days
Rubyでこれを試してください
require 'date'
DateTime.now.next_day(10).to_time
Rubyでこれを試してください。指定された日数後の新しい日付/時刻を返します
DateTime.now.days_since(10)