美文网首页
JS时间分割(将长时间分成每一天或N天)

JS时间分割(将长时间分成每一天或N天)

作者: QRFF | 来源:发表于2020-04-02 10:54 被阅读0次

    应用场景:一段长时间的参数代入后台查询,用户等待过长,于是分割成每天或者N天,可以快点拿到后台数据进行渲染
    比如开始时间是2020/03/02 14:29:46,结束时间是2020/04/01 14:33:46
    经过调用formatEveryDay输出则是


    QQ截图20200402105120.png
            let ydStart = "2020/03/02 14:29:46";
            let ydEnd = "2020/04/01 14:33:46"
            const startTime = ydStart.split(" ")[0];
            const endTime = ydEnd.split(" ")[0];
            const intervalDay = (getDate(endTime).getTime() - getDate(startTime).getTime()) / (1000 * 60 * 60 * 24)
            if (intervalDay >= 1) {
                console.log(formatEveryDay(startTime,endTime))
                let timeArr = formatEveryDay(startTime, endTime)
                console.log(group(timeArr, 2))
            }
            function formatEveryDay(start, end) {
                let dateList = [];
                let startTimeC = getDate(start);
                let endTimeC = getDate(end);
    
                while ((endTimeC.getTime() - startTimeC.getTime()) >= 0) {
                    let year = startTimeC.getFullYear();
                    let month = startTimeC.getMonth() + 1 < 10 ? '0' + (startTimeC.getMonth() + 1) : startTimeC.getMonth() + 1;
                    let day = startTimeC.getDate().toString().length == 1 ? "0" + startTimeC.getDate() : startTimeC.getDate();
                    dateList.push(year + "/" + month + "/" + day + " " + ydStart.split(" ")[1]);
                    startTimeC.setDate(startTimeC.getDate() + 1);
                }
                dateList[dateList.length - 1] = endTime + " " + ydEnd.split(" ")[1]
                return dateList;
            }
            function getDate(datestr) {
                let temp = datestr.split("/");
                let date = new Date(temp[0], temp[1] - 1, temp[2]);
                return date;
            }
    
    
            function group(array, subGroupLength) {
                let index = 0;
                let newArray = [];
                while (index < array.length-1) {
                     newArray.push(array.slice(index, index+subGroupLength));
                     index+=1;
                }
                return newArray;
            }
    

    相关文章

      网友评论

          本文标题:JS时间分割(将长时间分成每一天或N天)

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