首页 > 代码库 > jquery实现table按时间排序

jquery实现table按时间排序

$(document).ready(function(){
  sortTable();
});

var sortTable = function(){
    $("#tableList").find("#cell_startDate").bind("click",function(){
        var sortType = changSign("#tableList","#cell_startDate");
        var sortByStartDateFun = sortByType(sort,".list_startDate label");
        $("#tableList tbody").html($("#tableList tbody tr").sort(sortByStartDateFun));
    });
}

var changSign = function(tableSign,rowSign)
{
    var idtext = $(tableSign).find(rowSign).text();
    var sortType = "asc";
    if(idtext.indexOf("↑") > 0)
    {
        $(tableSign).find(rowSign).text(function(i,origText){
            return origText.substring(0,4) + "↓";
        });
        sortType = "asc";
    }else{
        $(tableSign).find(rowSign).text(function(i,origText){
            return origText.substring(0,4) + "↑";
        });
        sortType = "desc";
    }
    return sortType;
}

var sortType = function(sortType,list_sort){
    return function sortByDate(a,b){
        var aVal = $(a).find(list_sort).text();
        var bVal = $(b).find(list_sort).text();
        if("" == aVal)
        {
            return -1;
        }
        if("" == bVal)
        {
            return 1;
        }
        var aDateTemp = aVal.split(" ");
        var bDateTemp = bVal.split(" ");
        
        var arrStartDate = aDateTemp[0].split("-");
        var arrEndDate = bDateTemp[0].split("-");
        
        var arrStartTime = aDateTemp[1].split(":");
        var arrEndTime = bDateTemp[1].split(":");
        
        var allStartDate = new Date(arrStartDate[0],arrStartDate[1],arrStartTime[0],arrStartTime[1],arrStartTime[2]);
        var allEndDate = new Date(arrEndDate[0],arrEndDate[1],arrEndTime[0],arrEndTime[1],arrEndTime[2]);
        
        if(sortType == "asc")
        {
            if(allStartDate >= allEndDate)
            {
                return 1;
            }else{
                return -1;
            }
        }else{
            if(allStartDate > allEndDate)
            {
                return -1;
            }else{
                return 1;
            }
        }
    }
}

jquery实现table按时间排序