【问题标题】:JavaScript - hours, minutes, seconds, millisecond to floating point seconds for html audioJavaScript - html 音频的小时、分钟、秒、毫秒到浮点秒
【发布时间】:2020-04-13 17:31:23
【问题描述】:

我需要将包含小时、分钟、秒和毫秒的字符串“hh:mm:ss:mil”转换为 HTML 音频播放器用于 currentTime 的浮点数。

我找不到任何可以做到这一点的转换算法!我发现的最接近的将秒转换为整数,而我需要这样的东西

“00:00:38:000”-> 38.0(不是 2280)

“01:15:02:773”-> 4502.773

到目前为止我的代码 - 但它是错误的

function time2secs(time) {
    // 00:03:30 -> 3.5 seconds
    var t = time.split(':');
    if (t.length < 4) t[3] = 0; // if a missing millisecs, then set it to 0

    var seconds = parseInt(t[0]) * 60 * 60 + parseInt(t[1]) * 60 + parseInt(t[2]) + parseInt(t[3]) / 1000;

    return seconds / 60;
}

【问题讨论】:

  • // 00:03:30 -> 3.5 秒 ???
  • 我猜这是一个浮点数,这就是它当时从音频播放器返回的 currentTime !这应该是给定字符串“00:03:30”/“hh:mm:ss”返回 3.5 的浮点数时的输出
  • 但在几分钟内?
  • 你是对的!这是一个错误!

标签: javascript html5-audio


【解决方案1】:

试试这个

function timeToSec(time){
    var arr=time.split(":");
  return parseInt(arr[0])*3600+ parseInt(arr[1])*60+ parseInt(arr[2])+ parseInt(arr[3])*0.1000
}
console.log(timeToSec("00:00:38:000" ))
console.log(timeToSec("01:15:02:773" ))

【讨论】:

    【解决方案2】:

    此代码是否按预期工作?

    function time2secs(time) {
        var t = time.split(':');
        if (t.length < 4) t[3] = 0;
    
        let second = (parseInt(t[0]) * 60 * 60) + (parseInt(t[1]) * 60) + parseInt(t[2]) + (parseInt(t[3]) / 1000);
        return t[3] == 0 ? second + ".0" : second;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 2013-01-12
      • 1970-01-01
      相关资源
      最近更新 更多