Yuv*_*rmi 103 datetime ruby-on-rails activesupport ruby-on-rails-3
我试过做类似的事情
Time.now + 5.days
Run Code Online (Sandbox Code Playgroud)
但这不起作用,即使我依稀记得看到,并且留下深刻的印象,能够做类似的事情2.years.
我如何在Rails 3中做到这一点?
gun*_*unn 271
使用
Time.now + 10.days
Run Code Online (Sandbox Code Playgroud)
甚至
10.days.from_now
Run Code Online (Sandbox Code Playgroud)
两者都绝对有效.你确定你在Rails而不仅仅是Ruby吗?
如果你肯定是在Rails中,你在哪里尝试运行它?请注意,必须加载Active Support.
Jon*_*ian 20
days,years等等,都是积极支持的一部分,所以这是行不通的irb,但它应该工作rails console.
Hie*_*ham 10
其他一些选项,仅供参考
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
Run Code Online (Sandbox Code Playgroud)
只列出我知道的所有选项:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
Run Code Online (Sandbox Code Playgroud)
那么现在,如果我们关心时区,它们之间有什么区别:
[1, 4] 使用系统时区[2, 3] 使用Rails应用程序的配置时区[5] 日期只有结果中没有包含时间在 Rails 上试试这个
Time.new + 10.days
Run Code Online (Sandbox Code Playgroud)
在 Ruby 上试试这个
require 'date'
DateTime.now.next_day(10).to_time
Run Code Online (Sandbox Code Playgroud)