JQuery: Tablesorter-Plugin Erweiterung für das deutsche Datumsformat “dd.mm.yy hh:mm”

WP Greet Box icon
Hallo! neu hier? Dann abboniere doch den RSS feed, um immer auf dem aktuellsten Stand bleibst.

Mit dem Tablesorter-Plugin von Christian Bach kann eine Tabelle schnell und wirklich elegant aufgewertet werden. Das Plugin ermöglicht eine Sortierung über Tabellenspalten. In dem Plugin sind bereits einige Sortieralgorithmen implementiert, allerdings ist eine Sortierung einer Tabellenspalte mit deutschem Datumsformat nicht möglich. 

Das Tablesorter-Plugin bietet aber die Möglichkeit einen eigenen Sortieralgorithmus zu definieren und später einer Tabellenspalte zuzuweisen. Genau diesen Schritt hat Ulrich bereits getan und für das deutsche Datumsformat einen Parser erstellt. Dieser Parser stellt einen Sortieralgorithmus für das Datum im deutschen Datumsformat (dd.mm.yyyy) zur Verfügung.

1
2
3
4
5
6
7
8
9
10
11
12
$.tablesorter.addParser({
  id: 'germandate',
  is: function(s) {
          return false;
  },
  format: function(s) {
    var a = s.split('.');
    a[1] = a[1].replace(/^[0]+/g,"");
    return new Date(a.reverse().join("/")).getTime();
  },
  type: 'numeric'
});

Für ein Projekt benötigte ich genau solch einen Parser, allerdings im Datetime-Format, also inkl. Stunden- und Minutenangabe. Dafür habe ich einfach das vorhandene Skript von Ulrich erweitert, so dass das Datetime-Format in der Form “dd.mm.yyyy hh:mm” geparst werden kann. Der folgende Parser sortiert also anhand des Datetime-Formats “dd.mm.yyyy hh:mm“:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$.tablesorter.addParser({
    id: 'germandatetime',
    is: function(s) {
       return false;
    },
    format: function(s) {
      var a = s.split('.');
      a[1] = a[1].replace(/^[0]+/g,"");
      tmp = a[2].split(' ');
      a[2] =  tmp[0];
      t = tmp[1].split(':');
 
      return new Date(a[2],a[1]-1,a[0],t[0],t[1],0).getTime();
    },
    type: 'numeric'
});

Eingebunden in das Tablesorter-Plugin sieht die Variante dann folgendermaßen aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$(document).ready(function(){
  $.tablesorter.addParser({
      id: 'germandatetime',
      is: function(s) {
    	  return false;
      },
     format: function(s) {
       var a = s.split('.');
       a[1] = a[1].replace(/^[0]+/g,"");
       tmp = a[2].split(' ');
       a[2] =  tmp[0]
       t = tmp[1].split(':');
 
       return new Date(a[2],a[1]-1,a[0],t[0],t[1],0).getTime();
    },
    type: 'numeric'
  });
  $("#example").tablesorter({
    headers: { 1: { sorter:'germandatetime' }}
  });
});

Vielen Dank noch einmal an Ulrich für den Grundstein des Parsers.

You can leave a response, or trackback from your own site.

6 Kommentare to “JQuery: Tablesorter-Plugin Erweiterung für das deutsche Datumsformat “dd.mm.yy hh:mm””

  1. JQuery: Tablesorter-Plugin Erweiterung für deutsches Datumsformat…

    Das Tablesorter-Plugin ermöglicht eine Sortierung über Tabellenspalten. In dem Plugin sind bereits einige Sortieralgorithmen implementiert, allerdings ist eine Sortierung einer Tabellenspalte mit deutschem Datumsformat der Form “dd.mm.yyyy hh:mm” nic…

  2. newstube.de sagt:

    JQuery: Tablesorter-Plugin Erweiterung für das deutsche Datumsformat “dd.mm.yy hh:mm”…

    Das Tablesorter-Plugin ermöglicht eine Sortierung über Tabellenspalten. In dem Plugin sind bereits einige Sortieralgorithmen implementiert, allerdings ist eine Sortierung einer Tabellenspalte mit deutschem Datumsformat der Form “dd.mm.yyyy hh:mm” nic…

  3. JQuery: Tablesorter-Plugin Erweiterung für das deutsche Datumsformat “dd.mm.yy hh:mm”…

    Das Tablesorter-Plugin ermöglicht eine Sortierung über Tabellenspalten. In dem Plugin sind bereits einige Sortieralgorithmen implementiert, allerdings ist eine Sortierung einer Tabellenspalte mit deutschem Datumsformat der Form “dd.mm.yyyy hh:mm” nic…

  4. Alex sagt:

    Danke Dennis. Genau das habe ich gesucht. Du hast in deinem Script noch einen kleinen Fehler. Am Ende von Zeile 10 fehlt der ‘;’

    a[2] = tmp[0]

  5. Dennis S. sagt:

    Hey Alex,

    da hat sich wohl der Fehlerteufel eingeschlichen – ich habe es geändert. Vielen Dank für deinen Hinweis.
    Gruß

  6. Tino sagt:

    Hallo,

    danke für den Beitrag, der Parser für das Datum fehlte mir noch – und passt perfekt zu meinem Parser für euro-Beträge.

    grüße

Leave a Reply

Twitter Delicious Facebook Digg Stumbleupon Mister Wong Technorati Favorites More