JS制作倒计时--计算两个时间点的时间差

计算当前时间和一个指定时间点的时间差,是很常见的一个特效。

比如:

  • 一些电商网站的倒计时秒杀。

  • 高考倒计时

这些效果用 JavaScript 来实现,简直易如反掌。

主要用到的知识点:

  1. 时间对象:获取当前时间
  2. 时间对象:设定指定的时间点
  3. 时间对象的 getTime() 方法:获取指定时间距离1970 年 1 月 1 日0点0分之间的毫秒数。很明显,这个数据很大,但是没关系,JavaScript能处理的很好。利用两个时间跟1970年这个时间点的差,就可以得出两个时间之间的毫秒差,就可以转换为两个时间之间的时间差了。

现在距离2020年春节,1月25日0点0分0秒,还有:
<div id="showTime"></div>

<script>
    // 设置目标时间点:2020年1月25日0点0分0秒。 这个时间是固定的,不用写在计时器里每次都获取。
    let  tagDate = new Date(2020 , 0 , 25);
    // 获取目标跟 1970.1.1 的时间差
    let  tagGetTime = tagDate.getTime();
    // 获取标签
    let  showTime = document.getElementById("showTime");

    let timeGoFun = ()=>{
        let  now = new Date();
        // 获取时间差,单位“毫秒”
        let  disTime = Math.abs( tagGetTime-now.getTime());

        // 判断是否时间到了指定点
        // 是,就终止计时器,终结函数运行。
        if( disTime===0 ){
            showTime.innerHTML = "时间到~!";
            clearInterval(myset);
            return false;
        }
        disTime = Math.floor( disTime/1000 );  // 把毫秒,转为秒
        let miao =  disTime % 60 ;  // 秒
        let fen = Math.floor( disTime / 60 % 60 );  // 分
        let xiaoshi = Math.floor( disTime / 60 / 60  ) % 24;  // 小时
        let tian = Math.floor( disTime / 60 / 60 / 24 );  // 天

        // 显示时间。利用了 ES6 的模版字符串,好处是可以存放变量。
        showTime.innerHTML = `${tian}天${xiaoshi}时${fen}分${miao}秒`;
    };

   // 启动计时器,让时间走动起来。
   let myset =  setInterval(()=>{
        timeGoFun();
    },1000);

</script>

运行效果:

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
当然,我可以为您提供一个用JavaScript开发的计时组件,帮助您计算任意两个日期或时间的差异。以下是一个简单的示例代码: ```javascript function calculateTimeDifference(start, end) { var startDate = new Date(start); var endDate = new Date(end); // 计算时间差,单位为毫秒 var timeDiff = endDate.getTime() - startDate.getTime(); // 将时间差转换为天数、小时数、分钟数和秒数 var seconds = Math.floor(timeDiff / 1000); var minutes = Math.floor(seconds / 60); var hours = Math.floor(minutes / 60); var days = Math.floor(hours / 24); // 输出时间差 console.log("Days: " + days); console.log("Hours: " + hours % 24); console.log("Minutes: " + minutes % 60); console.log("Seconds: " + seconds % 60); } // 示例使用 var start = "2022-01-01T00:00:00"; var end = "2022-01-02T12:30:45"; calculateTimeDifference(start, end); ``` 在上述代码中,我们定义了一个名为`calculateTimeDifference`的函数,该函数接受两个参数:开始时间和结束时间。我们首先使用`new Date()`将这两个时间字符串转换为`Date`对象。然后,我们使用`getTime()`方法获取这两个日期对象时间戳,并计算它们之的差异。最后,我们将时间差转换为天数、小时数、分钟数和秒数,并输出结果。 您可以根据需要将开始时间和结束时间以字符串形式传递给`calculateTimeDifference`函数,并根据实际情况进行调整和格式化输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值