将音频时间转换为MM:SS

时间:2015-06-30 22:55:08

标签: javascript jquery html5-audio

我正在尝试将秒转换为MM:SS并且由于某种原因它没有正确显示。

jQuery('#player-recorded-call').get(0).currentTime;是获得<audio>当前时间位置。

例如

audioCurrentTime设置为326.459368,应该是05:26(MM:SS),但由于某种原因它已计算到05:84(var dur

    var audioCurrentTime = jQuery('#player-recorded-call').get(0).currentTime;

    var minutes = "0" + Math.floor(audioCurrentTime / 60);
    var seconds = "0" + (audioCurrentTime - minutes * 60);
    var dur = minutes.substr(-2) + ":" + seconds.substr(-2);

    $(".criteria-duration").html(dur);

我从https://stackoverflow.com/a/26206645/791022

得到了这个数学例子

2 个答案:

答案 0 :(得分:2)

由于audioCurrentTime不是一个完整的数字,(audioCurrentTime - minutes * 60)也不是一个整数,您最终会得到一个像"0326.4593684"这样的字符串。取最后两个字符,你得到05:84

您可以先截断audioCurrentTime

var seconds = "0" + (Math.floor(audioCurrentTime) - minutes * 60);

%(模数)运算符也很不错:

var seconds = "0" + Math.floor(audioCurrentTime % 60);

答案 1 :(得分:0)

你错过了Math.floor几秒钟的电话,并获得了它的最后两位数字,即84.

更新的代码应为:

var audioCurrentTime = jQuery('#player-recorded-call').get(0).currentTime;

var minutes = "0" + Math.floor(audioCurrentTime / 60);
var seconds = "0" +  Math.floor(audioCurrentTime - minutes * 60);
var dur = minutes.substr(-2) + ":" + seconds.substr(-2);

$(".criteria-duration").html(dur);