How to add minutes to a Time object

keruilin picture keruilin · Aug 4, 2011 · Viewed 79k times · Source

In Ruby, how do I do Time.now + 10.hours?

Is there an equivalent for secs and mins? For example:

Time.now + 15.mins

Answer

Phrogz picture Phrogz · Aug 4, 2011

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