js将时间段自定义间隔分为时间段、将时间秒转为时-分-秒格式

发布时间 2023-07-25 17:54:27作者: じ逐梦

实现场景:8:00-12:00上课,每节课45分钟,课间10分钟,获取上课时间段

结果:

//调用方法获取时间区间  总方法入口
gettimearr(gettimesecond(“8: 00: 00”), gettimesecond("12:00:00"), 45 * 60, 10 * 60);

/**
 * 将时间转为秒
 * @param {any} date   传入时间格式(字符串):8:00:00
 */
function gettimesecond(date) {
    var darr = date.split(':');
    return parseInt(darr[0]) * 3600 + parseInt(darr[1]) * 60 + parseInt(darr[2]);
}

/**
 * 获取节次时间
 * @param {any} startTime 起始时间   转换为秒   8:00    28800秒
 * @param {any} endTime 终止时间     转换为秒   12:00   43200秒
 * @param {any} l 课时时长     秒      
 * @param {any} g 课间间隔     秒
 */
function gettimearr(startTime, endTime, l, g) {
    var json = new Array();
    for (i = startTime; i < endTime; i = i + g) {
        //将秒转换为时分秒格式
        var s = formatSeconds(i);
        var e = formatSeconds(i + l);
        if (i + l < endTime) {
            var jsonitem = '{"course_begintime":"' + s + '","course_endtime":"' + e + '"}';
            console.error(jsonitem);
            json.push(jsonitem);
        }
        i = i + l;
    }
    console.error(json);
}

/**
 * 将时间秒转为时-分-秒格式
 * @param {any} value   秒
 */
function formatSeconds(value) {
    var secondTime = parseInt(value);//
    var minuteTime = 0;//
    var hourTime = 0;// 小时
    if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数
        //获取分钟,除以60取整数,得到整数分钟
        minuteTime = parseInt(secondTime / 60);
        //获取秒数,秒数取佘,得到整数秒数
        secondTime = parseInt(secondTime % 60);
        //如果分钟大于60,将分钟转换成小时
        if (minuteTime > 60) {
            //获取小时,获取分钟除以60,得到整数小时
            hourTime = parseInt(minuteTime / 60);
            //获取小时后取佘的分,获取分钟除以60取佘的分
            minuteTime = parseInt(minuteTime % 60);
        }
    }
    var result = "";
    if (secondTime > 0) {
        result = "" + parseInt(secondTime) + "";
    }
    else {
        result = "00秒";
    }
    if (minuteTime > 0) {
        result = "" + parseInt(minuteTime) + "" + result;
    }
    else {
        result = "00分" +result;
    }
    if (hourTime > 0) {
        result = "" + parseInt(hourTime) + "小时" + result;
    }
else
{
result="00小时"+result;
}
return result;
}