【发布时间】:2021-03-22 00:42:20
【问题描述】:
我有基于歌曲的对象,它们的持续时间属性以毫秒为单位保存。简而言之,我正在寻找一种方法来获取这样的字符串:3:25(3 分钟/25 秒)并将其转换为毫秒。我面临的问题是,据我所知,采用这样的值并将其与Time 一起使用是行不通的,因为它会认为它是一天中的时间与分号分隔的分钟数。想知道解析和转换这样的值以呈现的最佳方法。也想知道一种转换回来的方法。
【问题讨论】:
-
可能是
h, m = "3:25".split(":").map(&:to_i),然后是1000*(60*(60*h+m))。 -
h, remainder = 12300000.divmod(1000*60*60) #=> [3, 1500000]; h #=> 3; remainder #=> 1500000。然后"%d:%d" % [h, remainder/(1000*60)] #=> "3:25"或"#{h}:#{remainder/(1000*60)}" #=> "3:25"。见Integer#divmod。 -
谢谢。随意张贴作为答案。我会把它标记为正确的。
-
哦。另一个注意事项。
3:25代表分钟和秒。不是小时。 -
当然,到处都删除一个
60。
标签: ruby-on-rails ruby