Frage

Ich benutze JQGrid und meine Gitterdefinition ist so:

...
colNames:['Type','Date','Message','User Name','Host'],
colModel:[{name:'type',index:'type', width:100},
{name:'date',index:'date', sorttype:'date', formatter:'date', 
  formatoptions: {newformat:'d-M-Y'}, width:100},
{name:'log',index:'log', width:200},
{name:'username',index:'username', width:50},
{name:'host',index:'host', width:50}], 
...

Wenn ich meine kommenden Daten debuggierte, lautet einer der Datumswert (es ist Nummer) wie folgt:

1322550786997

Netz zeigt es so:

29-Nov-2011

Bis zu diesem Zeitpunkt ist alles in Ordnung. Wenn ich jedoch meine Datumsspalte sortieren möchte, ändert es nichts.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Das Problem ist, dass die Unix -Dekodierung der Unix (formatoptions: {srcformat: 'U', newformat: 'd-M-Y'}) Datum 1322550786997 Fang uns 19-Dec-43879 und nicht 29-Nov-2011. Sie korrigieren die Darstellung des Datums, die Zeichenfolge ist "\/Date(1322550786997)\/" anstelle der Zahl 1322550786997.

Sehen die Demo:

enter image description here

AKTUALISIERT: Sie können auch das folgende benutzerdefinierte Formatierer als Problemumgehung verwenden

formatter: function (cellval, opts) {
    var date = new Date(cellval);
    opts = $.extend({}, $.jgrid.formatter.date, opts);
    return $.fmatter.util.DateFormat("", date, 'd-M-Y', opts);
}

Es erstellt Date und dann Original verwenden date Formatierer, um es in das Format umzuwandeln 'd-M-Y'. Sehen hier die Demo.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top