使用js计算两个日期之间的差值

function dateDiff(d1,d2){
		var oldDate = new Date(d1);
		//判断有无d2(第二个日期),如果有就拿来用,没有就按照今天的日期来计算
		if(d2){
			var newDate = new Date(d2)//如果有就创建一个名为d2的new Date
		}else{
			var newDate = new Date()//如果没有就不传参(当前日期)
		}


		//可以直接让两个日期相减,但是有兼容问题
		// var a = oldDate - newDate;
		// console.log(a)
		

		//这里我们用很保险的方法,获取两个日期的时间戳,然后相减,再加以换算,就可以得到想要的差值
		
		//为了避免相减为负数,用Math.abs取绝对值
		var t=Math.abs(oldDate.getTime() - newDate.getTime());
		// 开始换算
		// 用相减所得到的毫秒数除以1000得秒,除以60得分钟,除以60得小时,除以24再用parseInt取整得到具体的天数
		var d = parseInt(t/1000/60/60/24)
		// 用相减所得到的毫秒数减去天数所用的毫秒数再除以1000得秒,除以60得分钟,除以60得到小时
		var h = parseInt((t - d*24*60*60*1000)/1000/60/60);
		// 用相减所得到的毫秒数减去天和小时所用的毫秒数再除以1000得秒,除以60得到分钟
		var m = parseInt((t-d*24*60*60*1000 - h*60*60*1000)/1000/60);
		// 用相减所得到的毫秒数减去天和小时以及分钟所用的毫秒数再除以1000得到秒
		var s = parseInt((t-d*24*60*60*1000 - h*60*60*1000 - m*60*1000)/1000);
		// console.log(d,h,m,s)//测试一下看有没有得到数据
		
		return{
			day:d,
			hours:h,
			minutes:m,
			seconds:s
		}
	}
	// var newDate = d2? new Date(d2) : new Date();//三目运算 与上面的if判断语句作用相同

	var diff1 = dateDiff("1997-7-1 0:0:0","1937/10/1 10:1:0")//两个确定时间的计算
	console.log(diff1)
	var diff2 = dateDiff("1997-7-1 0:0:0")
	console.log(diff2)
	//输入时间与现在时间的计算

	这是我的第一篇博客,写的是之前的一个小练习,觉得有点用可能会对刚学js的同学有一些帮助
	就发了出来,代码注意已经尽可能地写出来了,希望对读者能有所帮助。
	
	代码是写在 script 标签中的,然后结果打印在控制台(打开网页F12之后点Console即可看到运行结果)
	
	因为是第一次写博客  欢迎大家批评指正。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值