2017-10-13 1 views
0

jQuery 데이터 테이블을 사용하여 2 개의 날짜 열이있는 HTML 테이블을 표시하고 있습니다. 각 날짜 열의 날짜는 유닉스 시간 스탬프로 표시됩니다. 나는이 dd-mm-yyyy를 바꾸기 위해 render 함수와 moment.js를 사용한다. 그러나 이것은 잘 정렬되지 않으므로 데이터 순서 특성을 추가했습니다. 불행히도 렌더링 함수가 "type"의 유형 매개 변수를 얻으므로 내 렌더링 함수가 손상됩니다. 아래 샘플을 포함 시켰습니다. 누구든지 도와 줄 수 있습니까? jQuery Datatables 날짜 데이터 순서로 정렬 및 렌더링

<body> 
    <table class="tablesaw table-bordered table-hover table" id="list-tbl" data-tablesaw-mode="sort" data-tablesaw-sortable data-tablesaw-sortable-switch> 
     <thead> 
      <tr> 
       <th scope="col" data-tablesaw-sortable-col data-tablesaw-sortable-default-col data-tablesaw-priority="persist">Date 1</th> 
       <th scope="col">Text</th>  
       <th scope="col">Date 2</th> 
      </tr> 
     </thead> 

     <tbody> 
      <tr> 
       <td data-order="1510185600a">1510185600</td> 
       <td>4: 09-11-2017 --- </td> 
       <td data-order="1512777600">1512777600</td> 
      </tr> 
      <tr> 
       <td data-order="1491264000a">1491264000</td> 
       <td>1: 04-04-2017 --- </td> 
       <td data-order="1493856000">1493856000</td> 
      </tr> 
      <tr> 
       <td data-order="1504569600a">1504569600</td> 
       <td>3: 05-09-2017 ---</td> 
       <td data-order="1507161600">1507161600</td> 
      </tr> 
      <tr> 
       <td data-order="1498780800a">1498780800</td> 
       <td>2: 30-06-2017 --- </td> 
       <td data-order="1498780800">1498780800</td> 
      </tr> 
     </tbody> 
    </table> 
    <script> 
     $(document).ready(function() { 
      $('#list-tbl').DataTable({ 
       "columnDefs": [ 
        { 
         targets: [0], 
         //data: 0, 
         render: function (data, type, row) { 
          if (type === 'sort') 
           return data; 
          if (type === 'filter') 
          { 
           row[0].display='1'; 
           return 'frd'; 
          } 
          if (type === 'type' || type === 'sort' || type === 'filter') 
          { 
           row[0].display='1'; 
           return 'test'; 
          }         return 'kev'; 
          //if (type === 'type') 
          //{ 
           //row[0].display = moment.unix(row[0].display).format("DD-MM-YYYY"); 
           //row[2].display = moment.unix(row[2].display).format("DD-MM-YYYY"); 
           //var s = moment.unix(data).format("DD-MM-YYYY"); 
           //return s; 
          //} 
          //return data; 
          //return moment.unix(data).format("DD-MM-YYYY"); 
          if (type === 'display') 
           return 'kev'; 

         } 
        } 
       ], 
       "aLengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]], 
       "pageLength": 25 
      }); 
     }); 
    </script> 
</body> 

답변

0

moment.js 또는 데이터 정렬에 대한 다른 플러그인을 사용할 필요가 없습니다

<!DOCTYPE html> 

대신 데이터 정렬 속성을 사용합니다. 당신은

아래의 예와 같이 숫자 값으로 날짜를 변환해야합니다
<td scope="row" data-sort="' + Date.parse(<your date>)).valueOf() + '">Your date </td>' 

정확하게 날짜를 정렬합니다. 방금 구현했습니다.

관련 문제