js生成时间序列

/**
 * 生成时间序列,例如['00:00','00:01',...'23:59'],小时和分钟的分隔符可以自定义。常用于页面图表、报表展示的时间序列的计算。
 * opts:{
 *     slot:时间序列的间隔,1-59,
 *     seperator:小时和分钟的分隔符,
 *     maxValue:时间序列的最大值
 * }
 * */
let timeSeq = function(opts){
    var seperator = opts.seperator==null?'':opts.seperator;
    var slot = opts.slot==null?1:opts.slot;
    var defaultMaxValue = '23'+seperator+'59';
    var maxValue = opts.maxValue==null?defaultMaxValue:opts.maxValue;
    var hours = [];
    for(let i=0;i<24;i++){
        hours.push((''+(100+i)).substr(1,2));
    }
    var minutes = [];
    for(let i=0;i<60;i++){
        minutes.push((''+(100+i)).substr(1,2));
    }
    var times = [];
    hours.forEach(hour=>{
        minutes.forEach(min=>{
            times.push(hour+seperator+min);
        });
    });
    if(slot>1){
        times = times.filter((time,index,array)=>{
            return index%slot===0;
        });
    }
    if(maxValue!==defaultMaxValue){
        times = times.filter(time=>time<=maxValue);
    }
    return times;
}
let momentSeq = function(seperator,maxValue){
    return timeSeq({
        slot:15,
        seperator:seperator,
        maxValue:maxValue
    });
};

猜你喜欢

转载自blog.csdn.net/zhoujiaping123/article/details/80385997