export function getOverTimeDown(endDateStr: string, outValue?: { value: string }, fn?: () => void) {
let timer = window.setInterval(() => {
let curTime = getEachTime(endDateStr);
if (outValue) {
outValue.value = curTime;
}
if (curTime === '0天0小时0分钟0秒') {
fn && fn();
}
}, 1000);
const c = () => {
clearInterval(timer);
};
return c;
}
export function getEachTime(endDateStr: string, startDateStr?: string) {
// 结束时间
let endDate = new Date(endDateStr);
// 当前时间
let nowDate = new Date();
if (startDateStr) {
nowDate = new Date(String(startDateStr));
}
// 相差的总秒数
let totalSeconds = Math.abs(parseInt((endDate - nowDate) / 1000));
// 天数
let days = Math.floor(totalSeconds / (60 * 60 * 24));
// 取模(余数)
let modulo = totalSeconds % (60 * 60 * 24);
// 小时数
let hours = Math.floor(modulo / (60 * 60));
modulo = modulo % (60 * 60);
// 分钟
let minutes = Math.floor(modulo / 60);
// 秒
let seconds = modulo % 60;
// 输出到页面
let time = `${days}天${hours}小时${minutes}分钟${seconds}秒`;
console.log(time);
return time;
}
02-04
312
06-23
3186