开发者

How to add minutes to a Time object

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

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

开发者_如何学Python
Time.now + 15.mins


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


If you are using ActiveSupport, what you are looking for is the full .minutes and .seconds.

Time.now + 10.minutes
Time.now + 10.seconds


Also in ActiveSupport you can do:

10.minutes.from_now

10.minutes.ago


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.


Time Object

time = Time.now

Adding minutes to a time object:

time + 5.minutes


There is an advance function in Active Support refer.

You can do the following using advance:

d = DateTime.new(2010, 2, 28, 23, 59, 59) 
=> Sun, 28 Feb 2010 23:59:59 +0000
d.advance(hours: 1) 
=> Mon, 01 Mar 2010 00:59:59 +0000
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜