我试着做类似的事情
Time.now + 5.days
但这不起作用,即使我隐约记得看到,并且印象深刻,能够做类似的事情2.years
等等。
我如何在 Rails 3 中做到这一点?
我试着做类似的事情
Time.now + 5.days
但这不起作用,即使我隐约记得看到,并且印象深刻,能够做类似的事情2.years
等等。
我如何在 Rails 3 中做到这一点?
采用
Time.now + 10.days
甚至
10.days.from_now
两者都肯定有效。你确定你在 Rails 而不仅仅是 Ruby 吗?
如果你肯定在 Rails 中,你想从哪里运行它?请注意,必须加载 Active Support。
days
,years
等是 Active Support 的一部分,所以这在 中不起作用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)