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?
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:
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.