2016-11-24 1 views
1

Datatter 플러그인을 사용하여 PHP & MySQL을 사용하여 테이블을 만들었으며 DD.MM.YYYY로 열을 정렬하려고합니다. 형식이지만 그것이 내가 좋아하는 것처럼 그것이 작동하지 않는 것 같습니다. 첫 번째 숫자 만 사용하여 정렬됩니다. 여기 enter image description hereDatatables 날짜 정렬 (DD.MM.YYYY.)

날짜와 시간 순서에 대한 플러그인입니다 : 그것은 (에 DD.MM. 문제

$.fn.dataTable.moment = function (format, locale) { 
    var types = $.fn.dataTable.ext.type; 

    // Add type detection 
    types.detect.unshift(function (d) { 
     return moment(d, format, locale, true).isValid() ? 
      'moment-'+format : 
      null; 
    }); 

    // Add sorting method - use an integer for the sorting 
    types.order[ 'moment-'+format+'-pre' ] = function (d) { 
     return moment(d, format, locale, true).unix(); 
    }; 
}; 

가 다음은 테이블 데이터의 사진입니다 내 코드 여기

$(document).ready(function() { 
    var currentDate = new Date() 
    var day = currentDate.getDate() 
    var month = currentDate.getMonth() + 1 
    var year = currentDate.getFullYear() 
    var datum = day + "." + month + "." + year + "."; 
    var doc = day + month + year; 
    $(document).ready(function() { 

     $.fn.dataTable.moment('DD.MM.YYYY.'); 

     $('#pogled_ispu').removeAttr('width').DataTable({ 
      dom: 'Bfrtip', 
      scrollY: "500px", 
      scrollX: true, 
      scrollCollapse: true, 
      paging: false, 
      select: true, 
      columnDefs: [{ 
       width: 10, 
       targets: 8 
      }], 
      fixedColumns: { 
       leftColumns: 0 
      }, 
      buttons: [ 
       'colvis', 
       'pageLength', { 
        extend: 'excelHtml5', 
        text: '<i class="fa fa-file-excel-o"></i>', 
        titleAttr: 'Preuzimanje u excel formatu', 
        title: 'Tablični prikaz_' + datum, 
        exportOptions: { 
         columns: ':visible' 
        } 
       }, { 
        extend: 'pdfHtml5', 
        orientation: 'landscape', 
        text: '<i class="fa fa-file-pdf-o"></i>', 
        titleAttr: 'Preuzimanje u PDF formatu', 
        title: 'Prostorno planska dokumentacija', 
        message: 'Prostorno planska dokumentacija ' + datum, 
        pageSize: 'A3' 
       } 
      ], 
      language: { 
       "url": "js/Croatian.json", 
       buttons: { 
        colvis: '<i class="fa fa-eye"></i>', 
        pageLength: 'Broj redova' 
       } 
      } 
     }); 
    }); 
}); 

입니다 YYYY.) 형식. 마지막 점을 생략해야합니까?

+0

난 당신이 데이터 테이블 –

답변

-1

MySQL 구문에서 ORDER BY를 사용해 보셨습니까?

MySQL SELECT 문에서 'ORDER BY date DESC'를 사용하여 날짜별로 내 열을 정렬 할 수있었습니다. 선택중인 데이터를 정렬하므로 데이터를 데이터 테이블에 전달할 때 날짜별로 이미 정렬됩니다.

예 :

SELECT column1, column2, datecolumn, column4 
FROM table 
ORDER BY datecolumn DESC 
+0

없음에 문자열로 날짜 형식을 전달할 생각을, 그 확실히 문제가 아니지만 그럼에도 불구 주셔서 감사합니다 너의 노력 :) – Svinjica

0

이 일자 포맷 코드 시도 :

$('#table').DataTable({ 
"order": [[0, "desc"]], //order by date when 1st time table are loaded, based on your date column 
"aoColumnDefs": [ 
    { sType: "date-custom", aTargets: [0] } //targets are based on your date column 
], 
"aoColumns": [ 
    {"mDataProp": "date" //your date column name in array 
     ,"mRender": function(data, type, full) 
     { 
      var getData = new Date(data); 
      var month = getData.getMonth() + 1; 
      var date = getData.getDate(); 
      var year = getData.getFullYear(); 

      return (date > 9 ? date : "0" + date) + "." + 
        (month > 9 ? month : "0" + month) + "." + 
        year; 
     } 
    } 
] 
}); 

$.extend(jQuery.fn.dataTableExt.oSort, { 
"date-custom-pre": function(a) { 
var x; 
try { 
    var dateA = a.replace(/ /g, '').split("."); 


    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); 
    x = date; 
} 
catch (err) { 
    x = new Date(); 
} 
    return x; 
}, 
"date-custom-asc": function(a, b) { 
    return a - b; 
}, 
"date-custom-desc": function(a, b) { 
    return b - a; 
}});