倒计时的前提是有一个明确的终结时间,我们可以将当前的时间的时间戳与终结时间的时间戳进行相减,得出来的数据就是中间需要度过的时间,然后利用毫秒、秒、分、时、天、月的进制来计算倒计时。
1、确认有一个终结的时间,并获取时间戳
2、由于是倒计时功能,因此,关于时间的属性是会进行变化的,所以用定时器来主使这个变化
3、在定时器内部获取当前时间,并计算与终结时间的时间差
4、由于月份是从0开始计算,因此在计算的时候需要进行+1,终结的月份需要再进行-1,因为从当前时间来看,已经不到满月,多出来的时候会计算到天、时等中
5、利用时间的进制进行计算每个单位的数据
6、由于会有个位的存在,因此对得到的数据进行补0
7、利用字符串拼接将其输出
代码如下:(命名有点乱0.0)
var ri = setInterval(function () {
var zhong = new Date("2019-5-1 0:0:0");
var yun = zhong.getTime();
var d = new Date();
var c = d.getTime();
var cha = yun - c;
var yue = d.getMonth() + 1;
var yue1 = zhong.getMonth() + 1 - 1;
var yuea = yue1 - yue;
var tian = parseInt(cha / (1000 * 60 * 60 * 24));
var shi = parseInt(cha / (1000 * 60 * 60) % 24);
var fen = parseInt(cha / (1000 * 60) % 60);
var miao = parseInt(cha / (1000) % 60);
document.body.innerHTML = "<h2 style='text-align:center;'>距离活动结束还有" + p(yuea) + "月" + p(tian) + "天" + p(shi) + "时" + p(fen) + "分" + p(miao) + "秒</h2>";
}, 1000)
function p(z) {
z < 10 ? z = "0" + z : z;
return z;
}