用JS的Date对象计算两个时间的时间差

无意翻到一本相册,耶,这拍的都是什么,啥时候拍的,恩 2010年的,咋看起来这么老,内心的感情戏泛滥,2010年居然是十年前了……接着就萌生了个计算时间差的方法,下回不能让时间过这么快了

先给他找两个时间

去年的国庆到今天这样应该可以
代码实现下:var day1 = new Date(2019,10,01 ,12,30,20);
			// new出一个时间2019年10月1日12点30分20秒
			var day2 = new Date(2020,03,22 ,22,30,40);//现在的时间

用Date对象的getTime方法计算相差的毫秒数

Date给我们一个获取毫秒数的方法我们就可以直接拿来用
第一个时间的毫秒数减去第二个时间的毫秒数就好
代码实现下:var drr = Math.abs(day1.getTime() - day2.getTime());
//getTime就是用于获取毫秒数的,Math.abs为取绝对值,这样就不会出现负数

拿到相差的毫秒数之后就可算下相差的天数

一天有24小时,一小时有60分钟,一分钟有60秒,一秒有1000毫秒
往上推的话一天就有***毫秒,还是让计算机算吧……
代码实现下:var day = parseInt(drr / (24 * 60 * 60 * 1000));
//相差的毫秒数除一天的毫秒数不就是相差多少天
//记得对他取下整,要不就可能除不尽了

计算相差的小时数

用每小时的毫秒数除以剩下毫秒数就会的到有几个小时了
var hours = parseInt(drr % (24 * 60 * 60 * 1000) / (60 * 60 * 1000));
//对一天的毫秒数取下余,得到的就是剩下的毫秒数了
// 剩下毫秒数除每小时的毫秒数,同样对他取整,自然得到的就是相差的小时数了

计算相差的分钟数

和计算相差的小时数的思路类似,不过得用每分钟的毫秒数除剩下的毫秒数
代码实现下:var minutes = parseInt(drr % (60 * 60 * 1000) / (60 * 1000));
//对一小时的毫秒数取下余,得到的就是剩下的毫秒数了(就是没除尽的)
//剩下毫秒数除每分钟的毫秒数,同样对他取整,自然得到的就是相差的分钟数了

计算相差的秒数

和计算相差的分钟数的思路类似,不过得用每秒的毫秒数除剩下的毫秒数
代码实现下:var seconds = parseInt(drr % (60 * 1000) / 1000);
//对一分钟的毫秒数取下余,没除尽的就一定是剩下的毫秒数了
//剩下毫秒数除每秒的毫秒数,同样对他取整,自然得到的就是相差的秒数了

整合一下代码就可以得到我们想要的东西了

    var day1 = new Date(2019, 10, 01, 12, 30, 20);
    var day2 = new Date(2020, 03, 22, 22, 10, 40);
    var drr = Math.abs(day1.getTime() - day2.getTime());
    var day = parseInt(drr / (24 * 60 * 60 * 1000));
    var hours = parseInt(drr % (24 * 60 * 60 * 1000) / (60 * 60 * 1000));
    var minutes = parseInt(drr % (60 * 60 * 1000) / (60 * 1000));
    var seconds = parseInt(drr % (60 * 1000) / 1000);

    var res = "相差" + day + "天" + hours + "小时" + minutes + "分钟" + seconds + "秒";
    document.write(res);

实现效果

直接上图了,实现了基本的计算,还有挺多细节的,等下回有空再倒腾倒腾

在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值