使用Ruby格式化时间(在Rails上)
t = Time.now d = 10.minutes.from_now
使用这两个变量,如何输出像00:10:00
这样的计时器?
当d
倒计时,计时器将显示00:09:59
: 00:09:58
00:09:59
: 00: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"