获取当前时间用 new Date(),如果获取目标时间就是给括号里传规定格式的字符串比如:new Date("2017-03-27 14:59:59"); 这里对格式有要求: 在IE6-8下“-”这个横岗不兼容,需要用"/" getTime() 获取距离1970年1月1日午夜0点的毫秒差 所以求两个时间段的时间差就是 用getTime()方法 获取两个时间段的毫秒差 然后用多的减少的 代码: <script type="text/javascript"> /* * function:计时器函数 * params:目标时间字符串 * return:当前时间和目标时间所相差的时间字符串 * */ function getTimeFun(timePar){ //获得目标时间的时间对象 var dateTime = new Date(timePar); //获得当前时间的时间对象 var dateNow = new Date(); //分别获得距离1970年1月1日的毫秒数目 dateNow = dateNow.getTime(); dateTime = dateTime.getTime(); //目标时间不能比当前时间小 if(dateTime<dateNow){ return "时光不能倒流!!!"; } //求出当前时间和目标时间相差的毫秒 var time = dateTime - dateNow; //获得相差的小时(未取整) var hourMs = time/(1000*60*60); //获得相差的小时(向下取整) var hour = Math.floor(hourMs); //获得相差的分钟(未取整) var minuteMs = (hourMs-hour)*60; //获得相差的分钟(向下取整) var minute = Math.floor(minuteMs); //获得相差的秒数(向下取整) var sec = Math.floor((minuteMs - minute)*60); //要返回的倒计时 var timeStr = addZero(hour) +"小时"+addZero(minute)+"分钟"+addZero(sec)+"秒"; //返回对象 var resultList = {}; //返回对象存入小时、分钟、秒、倒计时 resultList.hour = addZero(hour); resultList.minute = addZero(minute); resultList.sec = addZero(sec); resultList.timeStr = timeStr; console.log(resultList) return resultList; } //如果数字小于10前面加0返回 function addZero(timeObj){ return timeObj<10?"0"+timeObj:timeObj; } //获取展示时间地点的div var timeDiv = document.getElementById("timeId"); //每一秒执行一次自执行匿名函数,这里timeAuto只是个变量,不是函数 var timeAuto = window.setInterval(function(){ //调用计时器函数并传入一个目标时间,然后得到返回值,返回值中包括小时分钟秒还有输出用的时间字符串 var res = getTimeFun("2017/03/27 20:00:00"); //检验返回值 if(res!="时光不能倒流!!!"){ //把时间字符串给展示的div展示出来 timeDiv.innerHTML = res.timeStr; //如果时间都为0的时候停止这个匿名函数 if(res.hour == 0 && res.minute ==0 && res.sec==0){ alert("结束"); clearInterval(timeAuto); } }else{ alert("时光不能倒流!!!"); clearInterval(timeAuto); } },1000); </script>
时间: 2024-10-12 22:51:08