一、Date内置对象(时间戳)
在做倒计时之前我们要了解 Date内置对象 该实例呈现时间中的某个时刻。Date 对象则基于 Unix Time Stamp,即自1970年1月1日(UTC)起经过的毫秒数。 创建一个新Date对象的唯一方法是通过new 操作符 例如:
let now = new Date();
若将它作为常规函数调用(即不加 new 操作符),将返回一个字符串,而非 Date 对象。
有三种方法获得总的毫秒数 如下:
var date = new Date();
console.log(date.valueOf());
console.log(date.getTime());
var date1 = +new Date();
console.log(date1);
console.log(Date.now());
运行截图为: 注意:时间一直在不断的变化 这四个值有时可能不同是因为程序执行也要时间
二、倒计时案例
算法思想 用结束时间减现在时间等于倒计时时间 用毫秒数相减 就不会出现 11.02-10.50 负数的情况 最后再把毫秒数转化为 天时分秒 毫秒要先除以1000转化为秒 秒/60=分/60=时/24=天 因为可能除出来是小数 所以用到了%给它取余 取整 具体代码实现:
function countdown(time) {
var nowtime = +new Date();
var deadline = +new Date(time);
var count = (deadline - nowtime) / 1000;
var day = parseInt(count / 60 / 60 / 24);
var hours = parseInt(count / 60 / 60 % 24);
hours = hours > 9 ? hours : '0' + hours;
var minutes = parseInt(count / 60 % 60);
minutes = minutes > 9 ? minutes : '0' + minutes;
var seconds = parseInt(count % 60);
seconds = seconds > 9 ? seconds : '0' + seconds;
var a = '倒计时:' + day + '天' + hours + '小时' + minutes + '分' + seconds + '秒';
console.log(a);
}
countdown('2022-5-8 21:00:00');
当前时间:
结束时间 2022-5-8 21:00:00
代码运行结果: 倒计时:
|