核心算法:
1、输入的时间减去现在的时间就是剩余的时间,即倒计时,但是不能拿着分秒相减,比如06分减去30分,结果会是负数。
2、用时间戳 输入时间的总毫秒数减去现在时间的总毫秒数得到的就是剩余时间的毫秒数。
3、把剩余时间总的毫秒数转换为天、时、分、秒(时间戳转换成时分秒)
转换公式如下:
d = parseInt(总秒数/60/60/24) //计算天数
h = parseInt(总秒数/60/60%24) //计算小时
m = parseInt(总秒数/60%60) //计算分
s = parseInt(总秒数%60) //计算当前秒数
function countDown(time){
var nowTime = +new Date(); //当前时间的总毫秒数
var inputTime = +new Date(time); //输入的时间的毫秒数
var times = (inputTime - nowTime)/1000; // 剩余时间的总毫秒数
var d = parseInt(times/60/60/24); //天
d < 10 ? '0'+ d : d
var h = parseInt(times/60/60%24); //时
h < 10 ? '0'+ h : h;
var m = parseInt(times/60%60); //分
m < 10 ? '0' + m : m;
var s = parseInt(times%60); //秒
s < 10 ? '0' + s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
console.log(countDown('2021-09-24 16:59:59'));