更改rails中的时间格式

时间:2014-10-03 12:08:24

标签: ruby-on-rails ruby-on-rails-3

我有一个Time对象,其中包含分钟和秒钟,如" 05:37"。我想知道将其转换为以下格式的方法:" 5m 37s"。

4 个答案:

答案 0 :(得分:0)

如果我们谈论的是Time对象,这很容易:

 t=Time.now
 puts "#{t.min}m #{t.sec}s"
 =>15m 28s

如果你有一个字符串

 s="05:37"
 t=s.split(':').map{|i| i.to_i}
 puts "#{t.first}m #{t.last}s"
 =>5m 37s

或更短

 s.split(':').map{|i| i.to_i}.join("m ")+"s"

答案 1 :(得分:0)

虽然我同意建议strftime的评论,但您也可以使用gsub

"05:37".gsub(/(\d+):(\d+)/, '\1m \2s')
#=> "05m 37s"

如果你不想要前导零,那么很容易摆脱它。

答案 2 :(得分:0)

[your_time_object].strftime('%Mm %Ss').

有关详细信息,请尝试this

答案 3 :(得分:-2)

没关系得到它:

[(total_response_time.to_i / counter_for_response_time.to_i) / 60 % 60, (total_response_time.to_i / counter_for_response_time.to_i) % 60].map { |t| t.to_s.rjust(2,'0') }.join('m ')

对于任何想要在未来将其转换为此类的人。