JavaScript显示持续时间

时间:2011-04-09 14:03:31

标签: javascript html5-audio

我正在尝试制作一个显示电影播放量的小计数器,例如在YouTube上播放。

我想要时间输出如下:

<div id="timeInfo">00:23</div>

我如何实现这一目标? 我尝试了以下但没有成功:

function infTime (){
    timeInfo.innerHTML = formatTime(video.currentTime);

    if (video.duration) {
        timeInfo.innerHTML = formatTime(video.duration);
    }
}

function formatTime (seconds) {
    seconds = Math.round(seconds);

    minutes = Math.floor(seconds / 60);
    minutes = (minutes >= 10) ? minutes : "0" + minutes;

    seconds = Math.floor(seconds % 60);
    seconds = (seconds >= 10) ? seconds : "0" + seconds;

    return minutes + ":" + seconds;
}

2 个答案:

答案 0 :(得分:1)

这一行有问题:

seconds = Math.round(seconds);

您希望在此处使用Math.floor来获得正确的结果。

现场演示: http://jsfiddle.net/simevidas/h6yst/

答案 1 :(得分:0)

您通过两次分配“innerHTML”来覆盖内容。第二个表达式可以用“+ =”编写,否则(更好)你可以单独构建字符串:

infTime: function() {
  var info = formatTime(video.currentTime) + (video.duration ? ' ' + formatTime(video.duration) : '');
  timeInfo.innerHTML = info;
}

现在,当然,假设“timeInfo”实际上是对相应DOM元素的引用,可能是这样获得的:

var timeInfo = document.getElementById('timeInfo');

此外,请务必记住将“minutes”作为局部变量,方法是首先在“formatTime”函数中使用var关键字:

    var minutes = Math.floor(seconds / 60);