// 计算相差月数(第一种)
var endTime = '2023-02';
var startTime = '2022-12';
endTime = endTime.split('-');
endTime = parseInt(endTime[0]) * 12 + parseInt(endTime[1]);
startTime = startTime.split('-');
startTime = parseInt(startTime[0]) * 12 + parseInt(startTime[1]);
var m = Math.abs(endTime - startTime);
console.log(m)
// 计算相差月数(第二种)
var endTime = '2023-02';
var startTime = '2022-12';
let diffMonth = this.getD(startTime ,endTime );
console.log(diffMonth)
// 获取相差几个月
function getD(a,b){
var arrA = a.split("-"),
arrB = b.split("-"),
yearA = arrA[0],
yearB = arrB[0],
monthA = +arrA[1],
monthB = (yearB-(+yearA))*12+parseInt(arrB[1]),
rA = [],
rB = [];
do{
do{
rA.push(yearA+""+(monthA > 9 ? monthA : "0"+monthA));
rB.push(yearA+"年"+monthA+"月");
if(monthA == 12){
monthA=1;
monthB -= 12;
break;
}
}while(monthB > monthA++)
}while(yearB > yearA++)
// return [rA,rB];
return rB;
},
// 计算相差天数(第一种)
var date1 = "2022-03-30";
var stime = new Date(date1).getTime();
var date2 = "2022-03-07";
var etime = new Date(date2).getTime();
console.log(stime);//大的时间
console.log(etime);//小的时间
let usedTime = stime - etime; // 两个时间戳相隔的毫秒数
let days = Math.floor(usedTime / (24 * 3600 * 1000)); // 计算相差的天数
console.log(days)//相差的时间
if(days>30){
console.log("时间大于一个月")
}else{
console.log("时间在一月以内")
}
// 计算相差天数(第二种)
let first = "2022-03-07"; //开始时间
let second = "2022-03-30"; //结束时间
let data1 = Date.parse(first.replace(/-/g, "/"));
let data2 = Date.parse(second.replace(/-/g, "/"));
let datadiff = data2 - data1;
let time = 30 * 24 * 60 * 60 * 1000;
if (first.length > 0 && second.length > 0) {
if (datadiff < 0 || datadiff > time) {
callback(new Error('日期范围不能大于30天'))
return false;
}else{
callback()
}
}
//两个时间相差的分钟数
var d1 = new Date('2023-04-22 22:21:28');
var d2 = new Date('2023-04-23 12:21:28');
let diffTime = parseInt(d2 - d1) / 1000 / 60 //两个时间相差的分钟数
console.log(diffTime)
//两个时间相差的天、时、分、秒、毫秒
var d1 = new Date('2023-04-22 22:21:28');
var d2 = new Date('2023-04-23 12:21:28');
var dateDiff = d2 - d1;//时间差的毫秒数
var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000));//计算出相差天数
var leave1 = dateDiff % (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 leave4 = leave3 % (60 * 1000) //计算分钟数后剩余的毫秒数
var minseconds = Math.round(leave4 / 1000)
var timeFn = "耗时:" + dayDiff + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒" + minseconds + "毫秒";
console.log(timeFn)
js时间差计算的几种方式
于 2022-03-09 15:20:11 首次发布