115

私は何かをやってみました

Time.now + 5.days

でもそれはうまくいきません2.years. などを見て、非常に感銘を受けたことをぼんやりと覚えていますが.

Rails 3でそれを行うにはどうすればよいですか?

4

6 に答える 6

300

使用する

Time.now + 10.days

あるいは

10.days.from_now

どちらも間違いなく機能します。Ruby だけでなく、Rails を使用していますか?

あなたが間違いなくRailsにいるなら、どこからこれを実行しようとしていますか? Active Support をロードする必要があることに注意してください。

于 2011-01-11T05:22:10.653 に答える
23

daysyearsなどは Active Support の一部であるため、 では機能しませんがirb、 では機能するはずrails consoleです。

于 2011-01-11T05:23:02.513 に答える
11

参考までに、いくつかの他のオプション

-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]日付のみ結果に時間が含まれない
于 2016-05-21T05:16:06.667 に答える
6

Railsでこれを試してください

Time.new + 10.days 

Rubyでこれを試してください

require 'date'
DateTime.now.next_day(10).to_time
于 2017-06-26T11:52:59.403 に答える