注意北京时间有八个小时的误差,所以我们直接 new Date(2018-01-01)其实是 2018 年 1 月 1 日的八点,所以我们要指定时间。
实现
比如我们写一个方法计算我们距 2018 年还有多少天:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function dateCount(){ // 获取现在的时间 var date = new Date(); // 2018的第一天 var until = new Date('2018-01-01 00:00:00'); // 计算时会发生隐式转换,调用valueOf()方法,转化成时间戳的形式 var days = (until - date)/1000/3600/24; // 下面都是简单的数学计算 var day = Math.floor(days); var hours = (days - day)*24; var hour = Math.floor(hours); var minutes = (hours - hour)*60; var minute = Math.floor(minutes); var seconds = (minutes - minute)*60; var second = Math.floor(seconds); var back = '距离2018年还剩下'+day+'天'+hour+'小时'+minute+'分钟'+second+'秒'; return back; }
然后再用 setInterval()方法实现实时倒数
1 2 3 4 5
setInterval(function(){ var text = dateCount(); // show是一个节点 show.innerText = text; },1000)