我尝试过像
这样的事情Time.now + 5.days
但这不起作用,即使我依稀记得看到并且留下深刻印象,能够做2.years
之类的事情等。
如何在Rails 3中执行此操作?
答案 0 :(得分:258)
使用
Time.now + 10.days
甚至
10.days.from_now
两者都绝对有用。你确定你在Rails而不仅仅是Ruby吗?
如果你肯定在Rails中,你想从哪里运行它?请注意,必须加载Active Support。
答案 1 :(得分:19)
days
,years
等是Active Support的一部分,因此这不适用于irb
,但它应该在rails console
中有用。
答案 2 :(得分:9)
这绝对有效,无论我需要在当前日期添加天数,我都会使用它:
Date.today() + 5
答案 3 :(得分:8)
其他一些选项,仅供参考
-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]
仅在结果中包含日期答案 4 :(得分:3)
在Rails上试试这个
Time.new + 10.days
在Ruby上试试这个
require 'date'
DateTime.now.next_day(10).to_time
答案 5 :(得分:1)
在Ruby上试试这个。 它将在未来的指定天数内返回新的日期/时间
DateTime.now.days_since(10)