美文网首页
JS - 获取开始日期和结束日期之间的时间段

JS - 获取开始日期和结束日期之间的时间段

作者: 明里人 | 来源:发表于2019-12-25 12:39 被阅读0次

    天数时间段:

    // 映射日期格式 结果为: YYYY-MM-DD
    function customFormat(date) {
        let str = "";
        let month = date.getMonth() + 1;
        let day = date.getDate();
        str += date.getFullYear().toString() + "-";
        str += month.toString().padStart(2, '0') + "-";
        str += day.toString().padStart(2, '0');
        return str;
    }
    
    function getDateBetWeen(startDate, endDate) { // 参数日期格式: YYYY-MM-DD
        if (!startDate || !endDate) return [];
        let result = [],
            startList = startDate.split('-'),
            ndList = endDate.split('-'),
            date1 = new Date(),
            date2 = new Date(),
            date1Time,
            date2Time;
        date1.setUTCFullYear(startList[0], startList[1] - 1, startList[2]);
        date2.setUTCFullYear(endList[0], endList[1] - 1, endList[2]);
        date1Time = date1.getTime();
        date2Time = date2.getTime();
        for(let time = date1Time; time <= date2Time;){
            console.log(moment(time).format('YYYY-MM-DD'));
            result.push(customFormat(new Date(parseInt(time.toString()))));
            // 如果项目使用了 moment.js,无需使用 customFormat 方法
            // result.push(moment(time).format('YYYY-MM-DD'));
            time = time + 24 * 60 * 60 * 1000;
        }
    }
    

    月数时间段:

    function getMonthAll(startMonth, endMonth) { // 参数日期格式:YYYY-MM
        if (!startMonth || !endMonth) return [];
    
        let result = [],
            startList = startMonth.split("-"),
            endList = endMonth.split("-"),
            mCount = 0;
    
        // 计算开始日期、结束日期之间的月数
        if (parseInt(startList[0]) < parseInt(endList[0])) {    // 非同一年
            mCount = (parseInt(endList[0]) - parseInt(startList[0])) * 12 + parseInt(endList[1]) - parseInt(startList[1]) + 1;
        } else {
            mCount = parseInt(endList[1]) - parseInt(startList[1]) + 1;
        }
        if (mCount > 0) {
            let startY = parseInt(startList[0]);
            let startM = parseInt(startList[1]);
            for (let i = 0; i < mCount; i++) {
                result[i] = startY + "-" + startM.toString().padStart(2, '0');
                if (startM < 12) {
                    startM += 1;
                } else {
                    startM = 1;
                    startY += 1;
                }
            }
        }
    
        return result;
    }
    

    相关文章

      网友评论

          本文标题:JS - 获取开始日期和结束日期之间的时间段

          本文链接:https://www.haomeiwen.com/subject/zrzqoctx.html