2011-01-11 52 views
87

我試圖做類似如何10天添加到當前時間在Rails的

Time.now + 5.days 

,但不起作用,即使我依稀記得看到,並且是非常深刻的印象,與能夠做什麼像2.years

我該怎麼做,在Rails 3的?

+0

這應該工作。你遇到了什麼錯誤? – cam 2011-01-11 05:21:30

+0

爲有效支持添加標籤 – sethvargo 2011-01-11 05:32:39

+0

它可以工作。正如你在軌道上,Time.zone.now聽起來更合適 – Ben 2018-03-08 07:50:19

回答

223

使用

Time.now + 10.days 

甚至

10.days.from_now 

兩個肯定工作。你確定你在使用Rails,而不僅僅是Ruby嗎?

如果你肯定是在Rails中,你在哪裏試圖從跑的?請注意,Active Support必須加載。

17

daysyears,等等,都是積極支持的一部分,所以這不會irb工作,但它應該在rails console工作。

8

這絕對可行,我用這個地方我需要幾天添加到當前日期:

Date.today() + 5 
4

一些其他的選擇,僅供參考

-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]僅日期沒有包括在結果時間
1

試試這個on Rails的

Time.new + 10.days 

嘗試這在紅寶石

require 'date' 
DateTime.now.next_day(10).to_time 
0

試試這個關於Ruby。 它會返回一個新的日期/時間天數指明在未來

DateTime.now.days_since(10)