Wir verwenden das Datatables ultimative Datum/Zeit Sortierung Plugin (https://datatables.net/blog/2014-12-18) zu versuchen und Datum Spalten zu sortieren, aber kein Glück bekommen es richtig Daten im richtigen Format zu sortieren. Wenn die Seite geladen wird, wird das folgende Skript ausführen:jQuery Datatables Ultimatives Datum/Zeit Sortierung Plugin
//sets the date format for datatables for sorting purposes
//reference: https://datatables.net/blog/2014-12-18
$.fn.dataTable.moment('M/D/YYYY');
/* Datatables */
$('.datatable').DataTable({
language : {
search : "_INPUT_",
searchPlaceholder : "Search...",
paginate : {
"next" : '<i class="fa fa-chevron-right"></i>',
"previous" : '<i class="fa fa-chevron-left"></i>'
}
},
responsive : {
details : {
display : $.fn.dataTable.Responsive.display.childRowImmediate,
type : 'column'
}
},
order : [0, 'desc'],
//date sorting
columnDefs:
{
targets: 'date_sortable',
render: function (data, type, full, meta) {
if(type === 'display'){
if(data){
var mDate = moment(data);
data = (mDate && mDate.isValid()) ? mDate.format("M/D/YYYY") : "";
console.log('rewrote data to ' + data);
}
}
console.log('date_sortable rendered');
return data;
}
}
});
sowohl Nach der Datentabellen Dokumentation und die Details, die ich auf dieser SO Post gefunden (DataTables Ultimate date/time sorting plug-in not working with Intl formats), habe ich date_sortable
als Klassennamen auf dem <th />
Element in meinem HTML, aber es sieht so aus, als ob die render
Funktion nicht aufgerufen wird, da meine console.log[...]
Einträge nie ausgeführt werden. Ich kann im generierten HTML sehen, dass die Klasse auf meinem <th />
Element ist, und die Daten, die gezeigt werden, sind im richtigen Format ('n/j/Y'
, in PHP), also bin ich an einem totalen Verlust.
Alles sieht gut aus, also irgendwelche Tipps/Hinweise hier? Die Datumsreihenfolge scheint eher zufällig zu sein, mit Einträgen, die Daten wie 1/6/2016 in der Mitte zeigen (siehe Screenshot), die keinen Sinn ergeben.
Ich werde sagen, dass diese Tabelle ~ 2.055 Datensätze zeigt, ist es möglicherweise eine Leistung Sache? Dies wird derzeit nicht mit API-Aufrufen geladen, daher befinden sich alle Datensätze im generierten HTML als einzelne Datei.
Es ist nicht zufällig, es ist String-Sortierung statt numerischer. In diesem Beispiel ist es in der Reihenfolge sortiert wie 2, 2, 2, 6, 7 –