js 根据输入具体时间倒计时(底部有简化版)

来源:互联网 发布:进销存数据分析 编辑:程序博客网 时间:2024/06/05 16:04

源码直接复制黏贴可用。

冗余版+简化版。


冗余版本:

<!DOCTYPE html><html lang="en">    <head>        <meta charset="utf-8">    <title></title> </head> <body>    <script type="text/javascript">        var createTime = '2016-11-14 10:20:00';//开始时间        var limitTimes = 10;//时间长度        // 倒计时 入口        countdowns =  window.setInterval(function(){            var arr = cutDoowns(limitTimes,createTime);            document.write(formatDate(arr[0])+':'+formatDate(arr[1])+':'+formatDate(arr[2])+'</br>');            if(arr[2]){                document.write('时间到!');            }        },1000);        /*            s,10分钟后的具体日期:            date,开始时间            然后转化成毫秒比较,所得的差值化成分秒,就是倒计时的分秒。         */        function cutDoowns(s,date){            console.log('');            var flag = false;            var arr = [];//arr[0]:分,arr[1]:秒,arr[2]:返回boolean            var now = new Date();//当前时间            var now1 = new Date(date);//开始时间            console.log('开始时间 now1: '+now1);            now1.setMinutes(now1.getMinutes()+s);//10分钟后的时间            console.log('当前时间 now :'+now);            console.log('10分钟时 now1:'+now1);            // 转化成年月日 时分秒 格式            var n = now.getFullYear()+'/'+(now.getMonth()+1)+'/'+now.getDay()+' '+now.getHours()+':'+now.getMinutes()+':'+now.getSeconds();            var n1 = now1.getFullYear()+'/'+(now1.getMonth()+1)+'/'+now1.getDay()+' '+now1.getHours()+':'+now1.getMinutes()+':'+now1.getSeconds();            // 日期转化成毫秒            var time1 = (new Date(n)).getTime();            var time2 = (new Date(n1)).getTime();            // 毫秒转日期格式            var time11 = new Date(time1);            var time21 = new Date(time2);            console.log('当前时间:'+n+',转化成毫秒:'+time1+',time11:'+time11);            console.log('10分钟时:'+n1+',转化成毫秒:'+time2+',time21:'+time21);            var surplusSec = time2-time1;//距离解锁剩余毫秒            if(surplusSec<=0){                clearInterval(countdowns);                flag = true;                return arr = [00,00,flag];            }            var minute = Math.floor(surplusSec/1000/60);//分钟            var second = Math.floor((surplusSec-minute*60*1000)/1000);//剩余秒数            console.log('剩余时间,minute: '+minute+',second: '+second+',surplusSec:'+surplusSec);            // var second = Math.round(surplusTimes);//秒数            console.log('剩余时间,minute: '+minute+',second: '+second+',surplusSec:'+surplusSec);            arr = [minute,second,flag];            return arr;        }        //格式化日期:把单字符转成双字符        function formatDate(n){            n = n.toString();            // console.log(n);            if(n.length<=1){                n = '0'+n;            }            // console.log(n);            return n;        }    </script>    </body></html>


简化版本:

<!DOCTYPE html><html lang="en">    <head>        <meta charset="utf-8">        <title>打开调试工具,看效果!</title>    </head>    <body>    <script type="text/javascript">        /*            打开调试工具,看效果!            思路:            1.设置一个倒计时的时间长度;            2.设置开始时间和当前时间;            3.结束时间是 开始时间+倒计时间;            4.结束毫秒-开始毫秒=剩余倒计时间。         */                // 准备        var countdownMinute = 10;//10分钟倒计时        var startTimes = new Date('2016-11-16 15:55');//开始时间 new Date('2016-11-16 15:21');        var endTimes = new Date(startTimes.setMinutes(startTimes.getMinutes()+countdownMinute));//结束时间        var curTimes = new Date();//当前时间        var surplusTimes = endTimes.getTime()/1000 - curTimes.getTime()/1000;//结束毫秒-开始毫秒=剩余倒计时间                // 进入倒计时        countdowns =  window.setInterval(function(){            surplusTimes--;            var minu = Math.floor(surplusTimes/60);            var secd = Math.round(surplusTimes%60);            console.log(minu+':'+secd);            if(surplusTimes<=0){                console.log('时间到!');                clearInterval(countdowns);            }        },1000);    </script>    </body></html>
                                             
1 0
原创粉丝点击