2016-06-02 7 views
0

jQuery DataTablesを使用していますが、この形式の時間列を並べ替えると問題が発生しますmm:ss。たとえば、私がこれを並べ替えると、00:08の並べ替えは何かしますが、これは良くありません。私は私のコラムにあります:データ型のソート時間の列

00:08 
00:15 
00:01 
01:20 
00:16 
02:11 

ソートは機能しません。あなたは私の時間列をどのように並べ替えることができますか?ここで

$('#table').DataTable({ 
    dom: "t<'col-sm-5'i><'col-sm-7'p>", 
    autoWidth: false, 
    serverSide: true, 
    aaSorting: [[0, 'desc']], 
    rowId: 'id', 
    lengthChange: false, 
    ajax: { 
     url: 'index', 
     method: 'POST' 
    } 
    columns: [ 
     {data: "id", width: '5%'}, 
     {data: "name", width: '10%', orderData: [ 1, 0 ]}, 
     {data: "user_name", width: '10%', orderData: [ 2, 0 ]}, 
     {data: "email", width: '35%', orderData: [ 3, 0 ]}, 
     {data: "duration", render: duration_time, width: '10%', type: "time",orderData: [ 4, 0 ]}, 
     {data: "incomplete", render: incomplete, width: '30%', orderData: [ 5, 0 ]} 
    ] 
}); 

レンダリングパラメータの関数である:

は、ここに私のコードです

function duration_time(data, type, dataToSet){ 
    var start = dataToSet.date_start; 
    var end = dataToSet.date_end; 
    var time = moment.utc(moment(end, "YYYY-MM-DD HH:mm:ss").diff(moment(start, "YYYY-MM-DD HH:mm:ss"))).format("mm:ss"); 

    return time; 
} 

function incomplete(data, type, dataToSet){ 
    return dataToSet.incomplete == 0 ? 'Complete' : 'Incomplete'; 
} 
+0

あなたはソートを実行されるコードを示してもらえますか? – Jay

+0

あなたのご使用のフィドルを作成してください –

答えて

4

あなたはSorting plug-insを使用する必要があります。

これにより、データだけでなくタイプに基づいて列を並べ替えることができます。

あなたのコードは次のようになります。

<script type="text/javascript" src="jquery.dataTables.js"></script> 
<script type="text/javascript" src="dataTables.numericComma.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#example').dataTable({ 
      "columnDefs": [ 
       { "type": "time", targets: 3 } 
      ] 
     }); 
    }); 
</script> 
+0

あなたの答えはありがとうございますが、私のための変更はありません – John

+0

あなたのコードをjabinまたはfiddleで共有できますか? – Ygalbel

+0

私はサーバ側ですので、これは私のフィドルを構築するのが難しいでしょう、私は自分のコードを表示するために私の質問を更新します。 – John

関連する問題