Ich benutze jQuery DataTables, versuchen, Datenspalte mit 2 verschiedenen Datumstypen zu sortieren.Jquery Datatables Datum Sortierung
Ich habe 2 verschiedene Formate Monat/Jahr und Tag/Monat/Jahr, aber sie sortieren nicht richtig.
Aktuelle Code:
function dateSorter(a, b) {
var datea = a.split("/");
var dateb = b.split("/");
if (datea[1] > dateb[1]) return 1;
if (datea[1] < dateb[1]) return -1;
if (datea[0] > dateb[0]) return 1;
if (datea[0] < dateb[0]) return -1;
if(datea.length == 2)
{
if (datea[2] > dateb[2]) return 1;
if (datea[2] < dateb[2]) return -1;
}
else
{
if(datea[1] > dateb[2]) return 1;
if(datea[2] < dateb[1]) return -1;
}
return 0;
}
über die aktuellen Code, es funktioniert für Monat/Jahr-Format und sortiert sie in Ordnung, aber nicht mit beiden Formaten gemischt.
Dies sortiert derzeit Tag/Monat aus Tag/Monat/Jahr-Format, aber Jahr nicht richtig sortiert.
Beispiel (Strom):
03/04/2016
12/04/2017
12/05/2015
01/2015
02/2015
02/2016
01/2018
...
es sein sollte:
01/2015
02/2015
12/05/2015
02/2016
03/04/2016
12/04/2017
01/2018
+1, glaube, das würde funktionieren, aber es basiert auch auf einem typischen Missverständnis bei benutzerdefinierten Sortier-Plugins: Die Verwendung von beiden Funktionen "-pre" und "-asc" und "-desc" macht wenig Sinn . Entweder haben Sie eine "Pre" -Funktion, die feste Werte an DataTables liefert, die automatisch erkannt wird, oder ** Sie haben '-asc' und' -desc' Methoden, die _all_ die Arbeit machen. Du kannst nicht beides haben. Probieren Sie den Code aus, ich bin mir sicher, dass "Datum-Zeit-Ungerade-Asz" und "Datum-Zeit-Ungerade-Desc" überhaupt nicht ausgeführt werden. Ich habe dieses Missverständnis auch selbst gehabt, auch viele alte Plugins enthalten diese Redundanz. – davidkonrad
Nun, dass ich es nicht wusste, danke @davidkonrad – annoyingmouse