2016-06-02 10 views
0

Ich benutze jQuery DataTables und ich habe ein Problem, wenn ich meine Zeitspalte mit diesem Format mm:ss sortiere. Zum Beispiel, wenn ich diese 00:08 sortiere die Sortierung tut etwas, aber das ist nicht gut. Ich habe in meiner Spalte:Datatables Sortierzeitspalte

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

So funktioniert die Art nicht. Weißt du wie ich meine Zeitspalte sortieren kann?

Hier ist mein Code:

$('#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 ]} 
    ] 
}); 

Hier ist die Funktion für den Parameter machen:

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

Könnten Sie den Code zeigen, dass die Art ausführt? – Jay

+0

Würdest du bitte eine Geige deiner Verwendung erstellen? –

Antwort

4

Sie haben Sorting plug-ins zu verwenden.

Sie können die Spalten nach Typ und nicht nur nach Daten sortieren.

Ihr Code wird so aussehen:

<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

Danke für deine Antwort, aber es gibt keine Änderungen für mich – John

+0

Kannst du deinen Code in Jabin oder Geige teilen? – Ygalbel

+0

Ich bin Server-Seite, so wird es schwer sein, meine Geige zu bauen, ich werde meine Frage aktualisieren, um Ihnen meinen Code zu zeigen. – John