如何向时间对象添加分钟


79

在Ruby中,我该怎么办Time.now + 10.hours

是否有一个等效secsmins?例如:

Time.now + 15.mins

1
相反,它不起作用 10 + Time.now::TypeError: Time can't be coerced into FixnumTime.now + 10对于所有有相同问题的人都起作用;)
Yo Ludke

Answers:


144

Ruby(编程语言)没有10.hours,这ActiveSupport是Ruby on Rails(网络框架)的一部分。是的,它确实具有minutesseconds方法。

但是,Time#+(Time实例上的+方法)返回一个新的Time实例,该实例在将来需要很多秒。因此,无需任何Ruby on Rails糖,您只需执行以下操作:

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

@NailsonLandim,您可能会发现Timerizer很有用。“在没有Rails的情况下启用时间语法。”
杰夫·迪基

核心扩展文档的相应部分是guides.rubyonrails.org/…和以下两个部分。
锡人

76

如果您使用的是ActiveSupport,那么您需要的是完整的.minutes.seconds

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

20

另外,在ActiveSupport中,您可以执行以下操作:

10.minutes.from_now

10.minutes.ago


1

时间对象

time = Time.now

向时间对象添加分钟:

time + 5.minutes

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.