2016-06-08 2 views
0

웹 응용 프로그램에 DataTable 라이브러리를 사용합니다. 사용자 지정 날짜 형식이 있으므로 정렬이 작동하지 않습니다. 아무도 나를 도울 수 있습니까?DataTable을 사용하여 사용자 정의 날짜 유형별 정렬

<td><fmt:formatDate value="${doc.docDate}" pattern="dd/MM/yyyy"></fmt:formatDate></td> 

libs와 : 그래서,이 내 날짜 필드가

<script src="/resources/jquery/moment.js"></script> 
<link rel="stylesheet" href="/resources/dt/DataTables-1.10.11/css/dataTables.bootstrap.min.css"> 
<script src="/resources/dt/DataTables-1.10.11/js/jquery.dataTables.min.js"></script> 
<script src="/resources/dt/DataTables-1.10.11/js/dataTables.bootstrap.min.js"></script> 
<script src="/resources/dt/DataTables-1.10.11/js/datetime-moment.js"></script><!--date format sorting https://datatables.net/blog/2014-12-18--> 

Datatables 초기화 :

$.fn.dataTable.moment('dd/MM/yyyy'); 
     $('#main-table').DataTable(); 

하지만 정렬이 작동하지 않습니다 Screen

답변

0

DataTables이 기능을 inbuild있다 정렬을 위해. 제대로 정렬하려면 날짜 형식에 플러그인을 사용해야 할 수도 있습니다. 이 유용 할 수 있습니다 https://datatables.net/plug-ins/sorting/

+0

이 기사를 이미 읽었습니다. 나는 $ ('# main-table2'). dataTable ({ "columnDefs": [ { "type": "datetime-moment"} ] }})'을 시도해 본다. 하지만 결과는 동일합니다 –

+0

Everythig가 순서대로 보입니다. 브라우저 콘솔에 오류가 있습니까 –

+0

오류가 없습니다 ... ( –

0

내가 이렇게 정의 내 datatables 날짜 형식을했습니다 : 일부 사용자 정의와

$('#table').DataTable({ 
    "aaData": data, 
    "order": [[2, "desc"]], 
    "aoColumnDefs": [ 
     { sType: "date-custom", aTargets: [0] } //based on your date column 
    ], 
    "aoColumns": [ 
     {"mDataProp": "date_save" 
      ,"mRender": function(data, type, full) 
      { 
       var getData = new Date(data); 
       var month = getData.getMonth() + 1; 
       var date = getData.getDate(); 
       var year = getData.getFullYear(); 
       var hour = getData.getHours(); 
       var minute = getData.getMinutes(); 

       return (date > 9 ? date : "0" + date) + "-" + 
         (month > 9 ? month : "0" + month) + "-" + 
         year + 
         ", " + 
         (hour > 9 ? hour : "0" + hour) + ":" + 
         (minute > 9 ? minute : "0" + minute); 
      } 
     }, 
     {"mDataProp": "source_page"}, 
     {"mDataProp": "sub_status"} 
    ] 
}); 

jQuery 플러그인이 :

$.extend(jQuery.fn.dataTableExt.oSort, { 
"date-custom-pre": function(a) { 
    var x; 
    try { 
     var dateA = a.replace(/ /g, '').split("-"); 
     var Datetime = a.replace(/ /g, '').split(","); 
     var timeA = Datetime[1];//time hour:minute 
     var timeB = timeA.replace(/ /g, '').split(":");// split hour & minute 
     var hour = timeB[0]; 
     var minute = timeB[1].replace(/\D/g, '');// remove string after "hour:minute" 

     var day = parseInt(dateA[0], 10); 
     var month = parseInt(dateA[1], 10); 
     var year = parseInt(dateA[2], 10); 
     var date = new Date(year, month - 1, day, hour, minute); 
     x = date.getTime(); 
    } 
    catch (err) { 
     x = new Date().getTime(); 
    } 

    return x; 
}, 
"date-custom-asc": function(a, b) { 
    return a - b; 
}, 
"date-custom-desc": function(a, b) { 
    return b - a; 
}}); 

그것은 다음과 같이 표시됩니다 :

15-12-2016, 12:33 
관련 문제