2

私は jqGrid を使用しており、グリッドの定義は次のようになっています。

...
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}], 
...

次のデータをデバッグすると、日付値の 1 つ (数値) は次のようになります。

1322550786997

グリッドはそれを次のように示しています。

29-Nov-2011

この時点まではすべて問題ありません。ただし、日付列を並べ替えたい場合、何も変わりません。

何か案は?

4

1 に答える 1

4

問題は、Unix( formatoptions: {srcformat: 'U', newformat: 'd-M-Y'}) の日付をデコードしても1322550786997取得でき19-Dec-43879ないこと29-Nov-2011です。日付の正しい表現は"\/Date(1322550786997)\/"、数値ではなく文字列になり1322550786997ます。

デモを見る:

ここに画像の説明を入力

更新: 回避策として、次のカスタム フォーマッタを使用することもできます。

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

Date独自のフォーマッタを作成し、それを使用dateしてフォーマットに変換します'd-M-Y'こちらのデモをご覧ください。

于 2011-12-01T13:52:47.310 に答える