使用Ruby格式化时间(在Rails上)

t = Time.now d = 10.minutes.from_now 

使用这两个变量,如何输出像00:10:00这样的计时器?

d倒计时,计时器将显示00:09:5900:09:58 00:09:5900:09:58等。

注意:我格式化以某种方式使用Rails datetime format方法。

我认为这应该做你想要的。

 def formatted_duration time_in_seconds Time.at(time_in_seconds).gmtime.strftime('%R:%S') end t = Time.now d = t+ 10.minutes #10.minutes.from_now puts formatted_duration(d.to_i - t.to_i) 

这最终对我有利:

 def timer(end_time) Time.zone.at(end_time-Time.now).strftime("%R:%S") end 

这可能会更快:

 def timer(end_time) d = (end_time - Time.now).to_i return "#{(d/60)%60}:#{d%60}" end 

你的irb控制台没有:

 >> t = Time.now + 15.minutes => Thu Mar 18 11:32:58 -0700 2010 >> timer(t) => "14:54" >> timer(t) => "14:52" >> timer(t) => "14:50"