如何以适当的形式获取秒,分钟和小时?

问题描述 投票:0回答:2

**好,所以我设法创建了设置歌曲定时器的代码……。问题是,正如您所看到的,我必须为两个不同的函数重复同一行代码( “ tiempo”和“ duracion”),唯一的区别在于,一个我想知道.duration时间,另一个我想知道.currentTime。

所以我想隔离重复的代码部分,以后再调用它,但我不知道该怎么做

变量“ totalNumberOfSeconds”需要更改两个函数中的内容,如果我隔离出重复“结果”的代码为NaN,则为NaN

““ audio”是包含带有歌曲的html标签的变量,“ timer”是包含“ 0:00/0:00”计时器的标签

****

audio.ontimeupdate = function(){totalTiempo()};

function totalTiempo() {
    document.getElementById("timer").innerHTML = tiempo() + '/' + duracion()
}


function tiempo() {
     totalNumberOfSeconds = Math.floor(audio.currentTime)
     const hours = parseInt( totalNumberOfSeconds / 3600 );
     const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
     const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
     const result = (minutes < 10 ?  + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
     console.log(result)
     return result
}

function duracion() {
     totalNumberOfSeconds = Math.floor(audio.duration)
     const hours = parseInt( totalNumberOfSeconds / 3600 );
     const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
     const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
     const result = (minutes < 10 ?  + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
     console.log(result)
     return result
}
javascript html5-audio reusability
2个回答
1
投票

您可以通过创建一个带有参数的函数来做到这一点,就像这样:

function convertTimeToString(time) {
     totalNumberOfSeconds = Math.floor(time)
     const hours = parseInt( totalNumberOfSeconds / 3600 );
     const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
     const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
     const result = (minutes < 10 ?  + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
     console.log(result)
     return result
}

然后您可以稍后使用所需的任何变量来调用此函数,如下所示:

function tiempo() {
     return convertTimeToString(audio.currentTime)
}

function duracion() {
     return convertTimeToString(audio.duration)
}

您也可以像这样直接在getTotalTiempo函数中调用它:

function totalTiempo() {
    document.getElementById("timer").innerHTML = convertTimeToString(audio.currentTime) + '/' + convertTimeToString(audio.duration)
}


0
投票

 
function totalTiempo() {
    document.getElementById("timer").innerHTML = tiempo(audio.currentTime) + '/' + duracion(audio.duration)
}
    function getTime(time) {
         totalNumberOfSeconds = Math.floor(time)
         const hours = parseInt( totalNumberOfSeconds / 3600 );
         const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
         const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
         const result = (minutes < 10 ?  + minutes : minutes) + ":" + (seconds  < 10 ? "0" + seconds : seconds);
         console.log(result)
         return result
    }

 
© www.soinside.com 2019 - 2024. All rights reserved.