当前位置: 首页 > news >正文

js编写倒计时-距离开始时间距离结束时间-结束

前言

经过10.1 急急忙忙的上线国庆专题,导致当时没有写一套自动切换时间的,所以让小同事在凌晨的时候替换页面完成,所以节后为了方便以后使用,编写了一套倒计时的小例子, 希望以后在有相似的时候,可以用上。

这个效果主要是利用js 完成 距离活动还有多长时间开始, 距离多长时间 结束,还有活动结束的时候停止。

<div>
    <p>
    <span id="timeTit"></span>  <span id="_d"></span><span id="_h"></span><span id="_m"></span><span id="_s"></span>
    </p>
  </div>

  <script type="text/javascript">

    //设置开始时间
    var begDate = new Date("2018-10-12 13:52:00");
    //设置结束时间
    var endDate = new Date("2018-10-12 13:53:00");
    var end = endDate.getTime(); // 结束秒数
    var beg = begDate.getTime(); // 开始秒数

    function countTime() {
      //获取当前时间
      var date = new Date();
      // 当前时间秒数
      var now = date.getTime();
      //时间差
      var leftTime = end - now; // 结束秒数 - 现在秒数
      var begTime = beg - now;  // 开始秒数 - 现在秒数
      //定义变量 d,h,m,s保存倒计时的时间
      var d, h, m, s;
      var timeTit = document.getElementById('timeTit'); // 时间前文档
      if(begTime>=0){ //  如果开始时间大于等于0 的时候 执行
        timeTit.innerHTML = '距离活动开始'
        d = Math.floor(begTime / 1000 / 60 / 60 / 24);
        h = Math.floor(begTime / 1000 / 60 / 60 % 24);
        m = Math.floor(begTime / 1000 / 60 % 60);
        s = Math.floor(begTime / 1000 % 60);

        document.getElementById("_d").innerHTML = d + "天";
        document.getElementById("_h").innerHTML = h + "时";
        document.getElementById("_m").innerHTML = m + "分";
        document.getElementById("_s").innerHTML = s + "秒";
      }else if (leftTime >= 0) { // 当结束时间大于等于0 的时候执行这里
        timeTit.innerHTML = '距离活动结束'
        d = Math.floor(leftTime / 1000 / 60 / 60 / 24);
        h = Math.floor(leftTime / 1000 / 60 / 60 % 24);
        m = Math.floor(leftTime / 1000 / 60 % 60);
        s = Math.floor(leftTime / 1000 % 60);
        //将倒计时赋值到div中
        document.getElementById("_d").innerHTML = d + "天";
        document.getElementById("_h").innerHTML = h + "时";
        document.getElementById("_m").innerHTML = m + "分";
        document.getElementById("_s").innerHTML = s + "秒";
        //递归每秒调用countTime方法,显示动态时间效果

      } else {  // 结束的时候执行这里
        timeTit.innerHTML = '活动已经结束';
        document.getElementById("_d").innerHTML = 0 + "天";
        document.getElementById("_h").innerHTML = 0 + "时";
        document.getElementById("_m").innerHTML = 0 + "分";
        document.getElementById("_s").innerHTML = 0 + "秒";
        clearTimeout(countTime); //  结束的时候清除定时器
        return;  // 并停止这个函数
      }
      setTimeout(countTime, 1000); // 每一秒执行一次这个函数
    }
    countTime(); // 执行函数
  </script>


复制代码

也许麻烦点,希望伙伴们指导,也希望帮助新入手的伙伴们。

这是过来人的一点经验。

转载于:https://juejin.im/post/5bc038915188255c352d8093

相关文章:

  • in, out, ref
  • 以太坊 ERC223 标准与 ERC20 的区别是什么?
  • 7、请求参数接收
  • iPhone的指纹识别与面部识别(FaceID)
  • 状态模式与外观模式的碰撞
  • 【hdoj】1358 Period【字符串--最小循环节 i/next[i]即为其长度】
  • Cracking The Coding Interview 3.6
  • 爬虫原理与数据抓取----- urllib2:GET请求和POST请求
  • 算法导论读书笔记(2)
  • Java中的基本类型和包装类
  • 用jquery-easyui中的combotree实现树形结构的选择
  • Oracle推出轻量级Java微服务框架Helidon
  • Postgres和MySQL创建用户并授予db权限
  • 自定义JSP标签库及Properties使用
  • Kubernetes - 集群内容器访问集群外服务
  • CentOS 7 修改主机名
  • codis proxy处理流程
  • DOM的那些事
  • Hibernate最全面试题
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • js面向对象
  • JS专题之继承
  • Netty 4.1 源代码学习:线程模型
  • Redis学习笔记 - pipline(流水线、管道)
  • Spring Boot MyBatis配置多种数据库
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue 个人积累(使用工具,组件)
  • 后端_ThinkPHP5
  • 记录:CentOS7.2配置LNMP环境记录
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 入口文件开始,分析Vue源码实现
  • 一、python与pycharm的安装
  • MyCAT水平分库
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #Java第九次作业--输入输出流和文件操作
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4)Elastix图像配准:3D图像
  • (4)logging(日志模块)
  • (5)STL算法之复制
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (pojstep1.3.1)1017(构造法模拟)
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (论文阅读40-45)图像描述1
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)使用VMware vSphere标准交换机设置网络连接
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET 材料检测系统崩溃分析