在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 日期時(shí)間范圍與日期時(shí)間范圍的比較

日期時(shí)間范圍與日期時(shí)間范圍的比較

后臺(tái)給的數(shù)據(jù)類(lèi)型為下圖,在表格中渲染它是否在對(duì)應(yīng)的時(shí)間段之內(nèi)

    var data = {
        id: 1,
        name: 'Sinwer',
        list: [{
                startTime: '9:10',
                endTime: '10:20'
            },
            {
                startTime: '14:20',
                endTime: '16:33'
            }
        ]
    };

這是最終效果
clipboard.png
我嘗試用moment來(lái)進(jìn)行比較,但是無(wú)論我怎么寫(xiě)邏輯最后的結(jié)果都不是預(yù)期的那樣,問(wèn)一下判斷的邏輯怎么寫(xiě)?謝謝了

    function diffTime(data) {
        var DiffTime = [ {
                s: "9:00",
                e: '10:00',
                flag:false
            },{
                s: "10:00",
                e: '11:00',
                flag:false
            },{
                s: "11:00",
                e: '12:00',
                flag:false
            },{
                s: "13:00",
                e: '14:00',
                flag:false
            },{
                s: "14:00",
                e: '15:00',
                flag:false
            }, {
                s: "15:00",
                e: '16:00',
                flag:false
            },{
                s: "16:00",
                e: '17:00',
                flag:false
            },{
                s: "17:00",
                e: '18:00',
                flag:false
            }
        ];
        for (var j in  DiffTime) {
            if(  //判斷寫(xiě)的不對(duì)~_~!
                // moment('2017 07 26 '+data.startTime).isBetween('2017 07 26 '+DiffTime[j].s,'2017 07 26 '+DiffTime[j].e) || 
               // moment('2017 07 26 '+data.startTime).isAfter('2017 07 26 '+DiffTime[j].s) && moment('2017 07 26 '+data.startTime).isAfter('2017 07 26 '+DiffTime[j].s)
                moment('2017 07 26 '+data.startTime).isAfter('2017 07 26 '+DiffTime[j].s) ||
                moment('2017 07 26 '+data.endTime).isBefore('2017 07 26 '+DiffTime[j].e) 
             ){
                DiffTime[j].flag = true;
            }
        }
        return DiffTime;
    }
    var timeArr = diffTime(data.list[0]);
    console.table(timeArr);
回答
編輯回答
墨沫

試下這個(gè)吧,沒(méi)多測(cè)

var data = {
        id: 1,
        name: 'Sinwer',
        list: [{
                startTime: '9:10',
                endTime: '10:20'
            },
            {
                startTime: '14:20',
                endTime: '16:33'
            }
        ]
    };
    function diffTime(data) {
        var DiffTime = [ {
                s: "9:00",
                e: '10:00',
                flag:false
            },{
                s: "10:00",
                e: '11:00',
                flag:false
            },{
                s: "11:00",
                e: '12:00',
                flag:false
            },{
                s: "13:00",
                e: '14:00',
                flag:false
            },{
                s: "14:00",
                e: '15:00',
                flag:false
            }, {
                s: "15:00",
                e: '16:00',
                flag:false
            },{
                s: "16:00",
                e: '17:00',
                flag:false
            },{
                s: "17:00",
                e: '18:00',
                flag:false
            }
        ];
        var temparr;
        for(var j in DiffTime){

            temparr = DiffTime[j].s.split(":");
            var stime = parseInt(temparr[0])*60+parseInt(temparr[1]);
            temparr = DiffTime[j].e.split(":");
            var etime = parseInt(temparr[0])*60+parseInt(temparr[1]);

            for(var i=0;i<data.length;i++){
                temparr = data[i].startTime.split(":");
                var side1 = parseInt(temparr[0])*60+parseInt(temparr[1]);
                temparr = data[i].endTime.split(":");
                var side2 = parseInt(temparr[0])*60+parseInt(temparr[1]);
                if((side1 >= stime && side1 <= etime) || (side2 >= stime && side2 <= etime) || (side1<=stime && side2 >= etime)){
                    DiffTime[j].flag = true;
                    break;
                }
            }
        }
        
        return DiffTime;
    }
    var timeArr = diffTime(data.list);
    console.table(timeArr);
2017年1月3日 02:46