js计算两个日期段相差多少天,两个时间相差几小时

382 阅读1分钟
/**
 * (报表页面)计算两个日期段相差多少天,两个时间相差几小时
 * @param start 开始时间 2022-02-02 11:14:22
 * @param end  结束时间 2022-02-07 02:00:00
 * @returns {{seconds: string, day: string}}
 */
 console.log(dateTime("2022-02-02 11:14:22","2022-02-07 02:00:00"))
function dateTime(start,end) {
    var diff = 0;
    var endDate = end.replace(/-/g,'/');
    var startDate = start.replace(/-/g,'/');
    diff = new Date(endDate) - new Date(startDate);//时间差的毫秒数
    //计算出相差天数
    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;
    }
    var obj={
        day:'',
        seconds:''
    }
    obj.day=days
    obj.hours=hours
    return obj;
}