前言
记录一下前端的小技巧,根据两个时间戳的差值,先计算共有多少小时,再计算剩余有多少分以及多少秒?
要求如下:
(1)输入两个时间戳,输出格式化后的目标字符串;
(2)格式为`xxxx:yy:zz`;
一、示例代码
/**
* 根据两个时间戳的差值,先计算共有多少小时,再计算剩余有多少分以及多少秒
* @param starTime 开始时间
* @param endTime 结束时间
* @param isMS 是否毫秒级
* @returns `xxxx:yy:zz` or `-`
*/
const fn = (starTime, endTime, isMS) => {
if (starTime && endTime) {
const timeDiff = endTime - starTime
const ms = isMS ? 1000 : 1
const hours = Math.floor(timeDiff / (ms * 60 * 60))
const minutes = Math.floor((timeDiff - (ms * 60 * 60) * hours) / (ms * 60))
const seconds = Math.floor((timeDiff - (ms * 60 * 60) * hours - (ms * 60) * minutes) / 1000)
return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`
} else {
return '-'
}
}
const startTime = 1700208169000 // 2023-11-17 16:02:49
const endTime = 1708162644000 // 2024-02-17 17:37:24
console.log(fn(startTime, endTime, true)) // 2209:34:35