2017-04-14 41 views

回答

4

這似乎工作:

DateTime.now.next_year(10).to_time 
#=> 2027-04-14 20:40:38 +0000 

太接受負數和做你所期望。

+0

有時候很值得一問自己然後搭便車:)。 –

4

Date#next_year方法需要多少歲月的參數來推進

DateTime.now.next_year(10).to_time 
#=> 2027-04-14 16:41:09 -0400 
2

如果你不介意使用ActiveSupport,你可以從積極的支持需要時間,像這樣:

require "active_support/time" 

然後你可以這樣做得到一個DateTime對象:

DateTime.now + 10.years 
=> Thu, 15 Apr 2027 13:02:15 +0000 

,或者如果你想有一個Time對象,而不是:「我將如何實現這樣的功能」

DateTime.now.to_time + 10.years 
=> 2027-04-15 13:02:15 +0000 
+0

'10.years'或者特別的'years'是Rails添加的方法,在普通的Ruby中沒有找到。 –

+0

是的你是對的,我會改變我的答案,提到只有在使用ActiveSupport時才能做到這一點。 –