【问题标题】:Converting minutes/seconds string to milliseconds integer将分钟/秒字符串转换为毫秒整数
【发布时间】: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


【解决方案1】:

持续时间字符串到总毫秒数:

def custom_convertor(duration_str)  # format of duration_str -> "12:34"
  mins, secs = duration_str.split(":").map(&:to_i)
  1000*(60*mins+secs)
end

【讨论】:

    猜你喜欢
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2014-02-13
    • 2012-09-27
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多