js计算两个时间差

1.计算时间戳的时间差(必须格式xxxx/xx/xx),不是这样格式的转成这样格式的


function diffTime(startDate,endDate) {
	var diff=endDate.getTime() - startDate.getTime();//时间差的毫秒数

	//计算出相差天数
	var days=Math.floor(diff/(24*3600*1000));

	//计算出小时数
	var leave1=diff%(24*3600*1000);    //计算天数后剩余的毫秒数
	var hours=Math.floor(leave1/(3600*1000));
	//计算相差分钟数
	var leave2=leave1%(3600*1000);        //计算小时数后剩余的毫秒数
	var minutes=Math.floor(leave2/(60*1000));

	//计算相差秒数
	var leave3=leave2%(60*1000);      //计算分钟数后剩余的毫秒数
	var seconds=Math.round(leave3/1000);

	var returnStr = seconds + "秒";
	if(minutes>0) {
		returnStr = minutes + "分" + returnStr;
	}
	if(hours>0) {
		returnStr = hours + "小时" + returnStr;
	}
	if(days>0) {
		returnStr = days + "天" + returnStr;
	}
	return returnStr;
}

 

2.计算时间戳的小时差,分钟差,秒差,天数差

GetDateDiff(startTime, endTime, diffType) {
	    //将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 
	    startTime = startTime.replace(/\-/g, "/");
	    endTime = endTime.replace(/\-/g, "/");
	    //将计算间隔类性字符转换为小写
	    diffType = diffType.toLowerCase();
	    var sTime =new Date(startTime); //开始时间
	    var eTime =new Date(endTime); //结束时间
	    //作为除数的数字
	    var timeType =1;
	    switch (diffType) {
	        case"second":
	            timeType =1000;
	        break;
	        case"minute":
	            timeType =1000*60;
	        break;
	        case"hour":
	            timeType =1000*3600;
	        break;
	        case"day":
	            timeType =1000*3600*24;
	        break;
	        default:
	        break;
	    }
	    return parseInt((eTime.getTime() - sTime.getTime()) / parseInt(timeType));
	},

方法调用:

this.hour =(this.GetDateDiff(this.startTime,this.formatDate(this.endTime),"hour")+1);

//计算整个时间差的值天秒分,先转格式成xxxx/xx/xx再调用diffTime()方法

const startTime =this.startTime.replace(/\-/g, "/");
const endTime =(this.formatDate(this.endTime)).replace(/\-/g, "/");

this.duration =this.diffTime(new Date(startTime),new Date(endTime));

参考引用:

https://blog.csdn.net/iteye_3142/article/details/82571328

https://www.cnblogs.com/kissdodog/p/5419913.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值