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));
参考引用: