如何向 Time 对象添加分钟

在 Ruby 中,如何执行 Time.now + 10.hours

secsmins是否有等价物? 例如:

Time.now + 15.mins
94023 次浏览

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

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.

Also in ActiveSupport you can do:

10.minutes.from_now


10.minutes.ago

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