js将一组为包含重复和无序日期的数组转化为按正常日期顺序排列的一组数组

来源:互联网 发布:js用什么编辑器 编辑:程序博客网 时间:2024/04/27 13:21
//去除数组里重复的数据
function uniqueArray(data) {
    data = data || [];
    var a = {};
    for (var i = 0; i < data.length; i++) {
        var v = data[i];
        if (typeof (a[v]) == 'undefined') {
            a[v] = 1;
        }
    };
    data.length = 0;
    for (var i in a) {
        data[data.length] = i;
    }
    sortDate(data);
    return data;
};


//日期排序,冒泡排序
function sortDate(dateList) {
    for (var i = 0; i < dateList.length; i++) {
        for (var j = 0; j < dateList.length - i; j++) {//循环一次将最大的日期放到数组最后,第二次循环只需循环dateList.length-1次
            if (new Date(dateList[j]) > new Date(dateList[j + 1])) {//将最大的日期排到最后
                var temp = dateList[j + 1];
                dateList[j + 1] = dateList[j];
                dateList[j] = temp;
            };
        };
    };
    return dateList;

};


//计算两个日期格式为yyyy-MM-dd之间所有的日期,包含起止日期

function show(value1, value2) {//value1,value2格式为yyyy-MM-dd的字符串
    var getDate = function (str) {
        var tempDate = new Date();
        var list = str.split("-");
        tempDate.setFullYear(list[0]);
        tempDate.setMonth(list[1] - 1);
        tempDate.setDate(list[2]);
        return tempDate;
    }
    var date1 = getDate(value1);
    var date2 = getDate(value2);
    if (date1 > date2) {
        var tempDate = date1;
        date1 = date2;
        date2 = tempDate;
    }
    date1.setDate(date1.getDate());
    date2.setDate(date2.getDate() + 1);
    while (!(date1.getFullYear() == date2.getFullYear() && date1.getMonth() == date2.getMonth() && date1.getDate() == date2.getDate())) {
        document.write(date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate());
        date1.setDate(date1.getDate() + 1);
    };
};

1 0
原创粉丝点击