let now = new Date(); let year=now.getFullYear(); let month=now.getMonth()+1; let date=now.getDate(); document.write("当前日期为:"+year+"年"+month+"月"+date+"日"+"<br>");//2021/3/16 //目标日期 let dateEnd = new Date(2021, 3, 18); //把相差的毫秒数转换为天数 let differ = parseInt(Math.abs(dateEnd - now)/1000/60/60/24); document.write("距离目标日期还有:"+differ+"天");
差两天,为什么会显示32天
求大佬!!!
2021-3-16 ---- 2021-3-31 15天
2021-4-1 ---- 2021-4-18 17天
// 计算时差
DateDifference(faultDate, completeTime) {
var stime = new Date(faultDate).getTime();
var etime = new Date(completeTime).getTime();
var usedTime = etime - stime; //两个时间戳相差的毫秒数
var days = Math.floor(usedTime / (24 * 3600 * 1000));
var time = days;
return time;
}
使用dayjs进行时间的计算会避免这种问题
let dateEnd = new Date(2021, 3, 18);dataEnd得到的是2021.4.18
dateEnd对应的日期其实是4月份,在js里面,new Date().getMonth()取出的月份是比实际月份小1的,所以你应该传入2来设置3月份,而不是3