如何以正确的形式获得秒、分和小时?
how to get seconds, minutes, and hours in a proper form?
我设法创建了这段代码来设置歌曲的计时器......问题是,如您所见,我必须为两个不同的功能重复同一行代码("tiempo" 和 "duracion") 其中唯一的区别是,在一个中我想知道 .duration 时间,在另一个中我想知道 .currentTime.
所以我想把重复的那部分代码隔离出来,稍后再调用,但我不知道该怎么做。
变量 "totalNumberOfSeconds" 需要在两个函数中更改它的内容,如果我隔离重复的代码 "result" 是 NaN。
"audio" 是包含 html 中带有歌曲的标签 <audio>
的变量,"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
}
你可以通过创建一个带参数的函数来做到这一点,就像这样:
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)
}
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
}
我设法创建了这段代码来设置歌曲的计时器......问题是,如您所见,我必须为两个不同的功能重复同一行代码("tiempo" 和 "duracion") 其中唯一的区别是,在一个中我想知道 .duration 时间,在另一个中我想知道 .currentTime.
所以我想把重复的那部分代码隔离出来,稍后再调用,但我不知道该怎么做。
变量 "totalNumberOfSeconds" 需要在两个函数中更改它的内容,如果我隔离重复的代码 "result" 是 NaN。
"audio" 是包含 html 中带有歌曲的标签 <audio>
的变量,"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
}
你可以通过创建一个带参数的函数来做到这一点,就像这样:
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)
}
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
}