jqGrid не сортируется при отображении времени эпохи (в виде миллисекунд) в качестве даты - PullRequest
2 голосов
/ 01 декабря 2011

Я использую 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}], 
...

Когда я отлаживаю мои поступающие данные, одно из значений даты (это число) выглядит следующим образом:

1322550786997

Сетка показывает это так:

29-Nov-2011

До этого момента все в порядке.Однако, когда я хочу отсортировать столбец даты, он ничего не меняет.

Есть идеи?

1 Ответ

4 голосов
/ 01 декабря 2011

Проблема в том, что декодирование даты Unix (formatoptions: {srcformat: 'U', newformat: 'd-M-Y'}) 1322550786997 дает нам 19-Dec-43879, а не 29-Nov-2011. Правильным представлением даты будет строка "\/Date(1322550786997)\/" вместо числа 1322550786997.

См. демо :

enter image description here

ОБНОВЛЕНО : Вы также можете использовать следующий пользовательский форматер в качестве обходного пути

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'. Смотрите здесь демо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...