Wie Sortieren nach Datum korrekt mit jQuery-Plugin Daten-Tabellen
Ich würde gerne wissen, wie kann ich Sortiere meine Tabellen, die durch ein Datum korrekt.
Ich bin mit jquery das plugin Daten-Tabellen (http://datatables.net/).
Fand ich auch ein nützliches plugin auf dieser Seite für mein problem, welches ich integriert in meinem code.
Mein JS-Code sieht wie folgt aus:
<script>
$(document).ready(function() {
jQuery.fn.dataTableExt.oSort['uk_date-asc'] = function(a,b) {
var ukDatea = a.split('/');
var ukDateb = b.split('/');
var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
};
jQuery.fn.dataTableExt.oSort['uk_date-desc'] = function(a,b) {
var ukDatea = a.split('/');
var ukDateb = b.split('/');
var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1;
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
var oTable = $('#example').dataTable( {
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"aoColumns": [
null,
{ "sType": "uk_date" },
null,
null,
null,
null,
null
]
} );
$(".search_init").click(function(){
var input_value = $(this).val();
$(this).val("");
});
$("tfoot input").keyup( function () {
oTable.fnFilter( this.value, $("tfoot input").index(this) );
} );
});
</script>
Meine Tabelle sieht wie folgt aus:
<table id="example">
<thead>
<tr>
<th>Some Text</th>
<th>Date</th>
<th>Some Text</th>
<th>Some Text</th>
<th>Some Text</th>
<th>Some Text</th>
<th>Some Text</th>
</tr>
</thead>
<tbody>
<tr>
<td>Some text</td>
<td>22/07/2011</td>
<td>Some text</td>
<td>Some text</td>
<td>Some text</td>
<td>Some text</td>
<td>Some text</td>
</tr>
...
</tbody>
<tfoot>
<tr>
<td><input type="text" class="search_init" value="Text" /></td>
<td><input type="text" class="search_init" value="Text" /></td>
<td><input type="text" class="search_init" value="Text" /></td>
<td><input type="text" class="search_init" value="Text" /></td>
<td><input type="text" class="search_init" value="Text" /></td>
<td><input type="text" class="search_init" value="Text" /></td>
<td><input type="text" class="search_init" value="Text" /></td>
</tr>
</tfoot>
</table>
Könnte jemand mir erklären, warum dies nicht funktioniert?
Ich bin in der Lage zu Sortieren jede Spalte außer die mit den Terminen.
Ich gehören folgende Bibliotheken:
<script src="[PATH]/js/jquery-1.6.2.min.js" language="JavaScript" type="text/javascript"></script>
<script src="[PATH]/js/jquery-ui-1.8.16.custom.min.js" type="text/javascript"></script>
<script src="[PATH]/js/jquery.dataTables.min.js" language="JavaScript" type="text/javascript"></script>
<script src="[PATH]/js/ZeroClipboard.js" type="text/javascript" charset="utf-8"></script>
<script src="[PATH]/js/TableTools.js" type="text/javascript" charset="utf-8"></script>
Die Lösung gefunden.. ein blöder Fehler. Ich verwendete h2-tags zum formatieren meiner Daten und nicht gestreift, Sie in JS.
InformationsquelleAutor damianfrizzi | 2011-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie daran interessiert sind, versuchen ein anderes plugin, hier ist eine Lösung für den beliebten Tablesorter plugin, dass ich in der Vergangenheit verwendet habe. Im Grunde einfach das plugin und erstellen Sie eine benutzerdefinierte parser für Ihre Termine.
Hier ist das Datum-parser habe ich:
Dem erwarteten Datum im format "TTT, MMM d, yyyy h:mm tt", wie oben angegeben. Der parser wandelt die Zeichenkette für das Datum in ein Datum-Objekt und liefert die Anzahl der Millisekunden seit Mitternacht 1. Januar 1970 und dem angegebenen Datum.
Das ist cool, werde ich haben, check it out! Ohne es zu betrachten, ich wäre nicht überrascht, wenn Sie müssen etwas tun, ähnlich wie tablesorter wie erstellen Sie einen parser, so dass die Daten verglichen werden können, richtig.
sieht aus wie eine süße plugin, werden versuchen, die nächste Zeit. Danke!
Die Funktionen habe ich in dem code oben sollte vergleichen Sie die aufgeführten Daten und Sortieren Sie diese.. Kein problem, Spaß haben 🙂
richtig, das ist die syntax für das erstellen von benutzerdefinierten Parser mit diesem plugin. In Bezug auf die datatable-plugin, OOB-eine Datum-Spalte nur Sortieren wenn es in der Standardeinstellung werden automatisch erkannt, durch Date().parse(). Also die Parser Sie packte von der Website funktionieren sollte. Ist es möglich, das Datumsformat ist nicht ganz richtig?
InformationsquelleAutor Craig
Dieser arbeitet für mich.
InformationsquelleAutor AmyG
Schreib einfach Datum im "JJJJMMTT" - format in dessen Stil keine anzeigen vor Datum anzeigen.
Beispiel-Code
InformationsquelleAutor Prasant Kumar