js倒计时代码编写

前几天写了个倒计时的需求,时间这玩意好久没写过,突然碰到差点懵逼。现在写出来分享一下。

倒计时一般显示就是时分秒,一个当前时间,一个截止时间,从中计算获取数据。

new Date()函数是js语言自带的系统函数。加上getTime()可以获得传入时间或者当前时间的毫秒数。参数有以下5种形式。

new Date("month dd,yyyy hh:mm:ss"); 
new Date("month dd,yyyy");
new Date(yyyy,mth,dd,hh,mm,ss);
new Date(yyyy,mth,dd);
new Date(ms);

需要注意最后一种形式,参数表示的是需要创建的时间和GMT时间1970年1月1日之间相差的毫秒数。

以上的参数要这样传:

·month:用英文表示的月份名称,从January~December。

·mth:用整数表示的月份,从0(1月)~11(12月)。

·dd:表示一个月中的第几天,从1~31。

·yyyy:四位数表示的年份。

·hh:小时数,从0(午夜)~23(晚11点)。

·mm:分钟数,从0~59的整数。

ss:秒数,从0~59的整数。

ms:毫秒数,为大于等于0的整数。

下面是举的几个例子:

new Date("May 12,2007 17:18:32");
new Date("May 12,2007");
new Date(2007,4,12,17,18,32);
new Date(2007,4,12);
new Date(1178899200000);

在设计倒计时需求的时候我的想法就是算出两个时间的差然后从中求得时分秒,甚至和日。下面贴出我的代码片段。

var countDown = function () {
        var endTime = new Date('2018/7/25 17:30:00');
        var nowTime = new Date();
        var t = endTime.getTime() - nowTime.getTime();
        console.log(t);
        var d = '';
        var h = '';
        var m = '';
        var s = '';
        if (t > 0) {
            d = Math.floor(t / 1000 / 60 / 60 / 24);
            h = Math.floor(t / 1000 / 60 / 60 % 24);
            m = Math.floor(t / 1000 / 60 % 60);
            s = Math.floor(t / 1000 % 60);
        }

        function toDouble(n) {
            return n < 10 ? '0' + n : n;
        }

        // return d+'天'+toDouble(h)+'时'+toDouble(m)+'分'+toDouble(s)+'秒';
        console.log(d + '天' + toDouble(h) + '时' + toDouble(m) + '分' + toDouble(s) + '秒')
    }
    setInterval(countDown, 100);

这个函数里面dhms分别代表了天时分秒,用时间差算出。最后得出相应的数据return出来,这里我直接console的,方便调试,使用时请注意。每0.1s调用一次函数达到刷新数据的目的。如果想知道更多获得时间的函数可以点击以下网址

猜你喜欢

转载自blog.csdn.net/weixin_40776188/article/details/81283892