How to add minutes to a Time object
Ruby on-RailsRubyTimeRuby on-Rails Problem Overview
In Ruby, how do I do Time.now + 10.hours
?
Is there an equivalent for secs
and mins
? For example:
Time.now + 15.mins
Ruby on-Rails Solutions
Solution 1 - Ruby on-Rails
Ruby (the programming language) doesn't have 10.hours
, that's ActiveSupport
as part of Ruby on Rails (the web framework). And yes, it does have both minutes
and seconds
methods.
However, Time#+
(the + method on Time instances) returns a new Time instance that is that many seconds in the future. So without any Ruby on Rails sugar, you can simply do:
irb> t = Time.now
#=> 2011-08-03 22:35:01 -0600
irb> t2 = t + 10 # 10 Seconds
#=> 2011-08-03 22:35:11 -0600
irb> t3 = t + 10*60 # 10 minutes
#=> 2011-08-03 22:45:01 -0600
irb> t4 = t + 10*60*60 # 10 hours
#=> 2011-08-04 08:35:01 -0600
Solution 2 - Ruby on-Rails
If you are using ActiveSupport, what you are looking for is the full .minutes
and .seconds
.
Time.now + 10.minutes
Time.now + 10.seconds
Solution 3 - Ruby on-Rails
Also in ActiveSupport you can do:
10.minutes.from_now
10.minutes.ago
Solution 4 - Ruby on-Rails
I think you're talking about extensions added by Rails. I think you need 15.minutes
.
See the Active Support Core Extensions for Date, DateTime and Time for more information.
Solution 5 - Ruby on-Rails
Time Object
time = Time.now
Adding minutes to a time object:
time + 5.minutes