JavaScript如何实现页面倒计时?【含源码】

阿迪拐
• 阅读 3587

在一些电商网站的活动页上会经常出现折扣商品的倒计时标记,显示离活动结束还剩x天x小时X分X秒,像这样的倒计时效果就可以利用日期对象来实现。
倒计时的核心算法是输人的时间减去现在的时间,得出的剩余时间就是要显示的倒计时时间,这需要把时间都转化成时间戳(毫秒数)来进行计算,把得到的毫秒数转换为天数、小时、分数、秒数。具体示例代码如下。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JavaScript倒计时代码|黑马程序员web前端培训高手班 http://web.itheima.com</title>
    <style>
        body{
            background-color: #f5f5f5;
        }
        p{
            margin: 100px auto;
            width: 500px;
            text-align: center;
            font-weight: 700;
            font-size: 16px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div>
        <p id="t"></p>
    </div>
</body>
<script>
    // 倒计时函数
    function countDown(time) {
        var nowTime = +new Date();
        var inputTime = +new Date(time);
        var times = (inputTime - nowTime) / 1000;
        var d = parseInt(times / 60 / 60 / 24);
        d = d < 10 ? '0' + d : d;
        var h = parseInt(times / 60 / 60 % 24);
        h = h < 10 ? '0' + h : h;
        var m = parseInt(times / 60 % 60);
        m = m < 10 ? '0' + m : m;
        var s = parseInt(times % 60);
        s = s < 10 ? '0' + s : s;
        return d + '天' + h + '时' + m + '分' + s + '秒';
    }
    // 设置终止时间
    time = '2021-11-30 10:57:56';

    //  设置定时器1秒运行1次
    window.setInterval(function(){
        time1 = countDown(time);
        let pTime = document.getElementById('t');
        pTime.innerHTML = time1;
    }, 1000);
</script>
</html>

上述代码中,第2行的+new Date()是new Date().getTime()代码的简写,返回当前时间戳,单位是毫秒。第3行代码是设置活动的结束时间戳。第4行代码计算剩余毫秒数,需要转换为秒数,转换规则为1秒/1000毫秒。第5~13行代码计算天数小、小时h、分时m、秒数s,并使用return返回。 第16行代码输出距离指定结束日期2021-11-30 10:57:56还剩多少时间。

代码运行效果如下:
JavaScript如何实现页面倒计时?【含源码】

相关文章:
Math对象的常用方法有哪些?如何使用?
JavaScript中let和var和const有什么区别?
javascript开发工具有哪些?

点赞
收藏
评论区
推荐文章
Karen110 Karen110
4年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
Wesley13 Wesley13
4年前
Java日期时间API系列31
  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前
Wesley13 Wesley13
4年前
java常用类(2)
三、时间处理相关类Date类:计算机世界把1970年1月1号定为基准时间,每个度量单位是毫秒(1秒的千分之一),用long类型的变量表示时间。Date分配Date对象并初始化对象,以表示自从标准基准时间(称为“历元”(epoch),即1970年1月1日08:00:00GMT)以来的指定毫秒数。示例:packagecn.tanjian
双十一预售活动分析
2022年双十一促销活动已经开始,大家应该都提前开始关注今年双十一活动的时间表了吧?2022年10月24日晚8:00天猫双11预售时间,第一波销售时间10月31日晚8:0,第二波销售时间11月10日晚8:00;天猫双11的优惠力度是跨店每满30050
Karen110 Karen110
4年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Python进阶者 Python进阶者
4年前
手把手教你使用Python打造一款摸鱼倒计界面
大家好,我是吴老板。前言前段时间在微博看到一段摸鱼人的倒计时模板,感觉还挺有趣的。于是我用了一小时的时间写了个页面出来摸鱼办地址(当然是摸鱼的时间啦)。模板是这样的:摸鱼办公室🐟你好,摸鱼人,工作再累,一定不要忘记摸鱼哦!有事没事起身去茶水间去廊道去天台走走,别老在工位上坐着。多喝点水,钱是老板的,但命是自己的!🐟距离周末放假还有
Wesley13 Wesley13
4年前
mysql中时间比较的实现
MySql中时间比较的实现unix\_timestamp()unix\_timestamp函数可以接受一个参数,也可以不使用参数。它的返回值是一个无符号的整数。不使用参数,它返回自1970年1月1日0时0分0秒到现在所经过的秒数,如果使用参数,参数的类型为时间类型或者时间类型的字符串表示,则是从1970010100:00:0
Stella981 Stella981
4年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
4年前
CountDownLatch和CylicBarrier以及Semaphare你使用过吗
CountDownLatch是什么CountDownLatch的字面意思:倒计时门栓它的功能是:让一些线程阻塞直到另一些线程完成一系列操作后才唤醒。它通过调用await方法让线程进入阻塞状态等待倒计时0时唤醒。它通过线程调用countDown方法让倒计时中的计数器减去1,当计数器为0时,会唤醒哪些因为调用了await而阻塞的线程。
Stella981 Stella981
4年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
4年前
CountDownTimer 实现倒计时功能
CountDownTimerCountDownTimer是android自带的一个倒计时类,使用这个类可以很简单的实现倒计时功能CountDownTimer的实现方式newCountDownTimer(6000,1000){//第一个参数表示的是倒计时的总时间,第二参数表示的是倒计时的间隔时间。