一、传时间格式版
// 倒计时,时分秒(传时间格式版)
function timeChange(time) {
// 参与运算的数据
let hour = Number(time.split(':')[0])
let minute = Number(time.split(':')[1])
let second = Number(time.split(':')[2])
// 计时器
var countDowTime = setInterval(()=>{
// 计算时分秒部分
if (second > 0) {
second -= 1
} else {
if (hour === 0 && minute === 0) {
second = 0
} else {
second = 59
if (minute === 0) {
if (hour > 0) {
minute = 59
hour -= 1
} else {
minute = 0
hour = 0
}
} else {
minute -= 1
}
}
}
// 组合数据输出
let hourCopy = hour < 10 ? hour.toString().padStart(2,'0') : hour.toString()
let minuteCopy = minute < 10 ? minute.toString().padStart(2,'0') : minute.toString()
let secondCopy = second < 10 ? second.toString().padStart(2,'0') : second.toString()
const timeCountDown = hourCopy + ':' + minuteCopy + ':' + secondCopy
// 判断何时停止倒计时
if (timeCountDown === '00:00:00') clearInterval(countDowTime)
console.log(timeCountDown)
},1000)
}
// 调用传入想要倒计时的总时间
timeChange('00:10:05')
二、传秒数版
// 倒计时,时分秒 (传秒数版)
function timeChange(time) {
// 参与运算的数据
let hour = ''
let minute = ''
let second = ''
// 组合输出的数据
let hourShow = ''
let minuteShow = ''
let secondShow = ''
var timeCountDown = setInterval(()=>{
time -= 1
// 计算时分秒部分
hour = Math.floor(time/3600)
let hourMoreThan = parseInt(time%3600)
minute = Math.floor(hourMoreThan/60)
let minuteMoreThan = parseInt(hourMoreThan%60)
second = minuteMoreThan
secondShow = second.toString()
// 组合时分秒输出
hourShow = hour < 10 ? "0" + hour : hour.toString()
minuteShow = minute < 10 ? "0" + minute : minute.toString()
secondShow = second < 10 ? "0" + second : second.toString()
let timeExport = hourShow + ':' +minuteShow + ':' + secondShow
// 判断何时停止倒计时
if (timeExport === '00:00:00') clearInterval(timeCountDown)
console.log(timeExport)
},1000)
}
// 调用传入想要倒计时的总秒数,注意不是总毫秒数,比如想倒计时2分钟,就传120
timeChange(1200)
感谢阅读