无意翻到一本相册,耶,这拍的都是什么,啥时候拍的,恩 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);
实现效果
直接上图了,实现了基本的计算,还有挺多细节的,等下回有空再倒腾倒腾