Анализатор таблиц jQuery для даты и времени в формате MM.DD.YYYY HH: MI AM - PullRequest
1 голос
/ 27 сентября 2011

У меня есть таблица из 4 столбцов, в которой 2-й столбец является столбцом даты в следующем формате "mm.dd.yyyy чч: ми я". Таблетный сортировщик по умолчанию неправильно сортирует столбец по дате. Мне пришлось написать свой собственный парсер в TableSorter, но он все еще не работает для меня. Я не уверен, правильно ли использовано регулярное выражение, и может ли кто-нибудь указать мне на ошибку в коде ниже? Буду признателен за вашу помощь.

ts.addParser(
{
    id: "srsDate",
    is: function (s) {
        return /\d{1,2}\.\d{1,2}\.\d{1,4} \d{1,2}:\d{1,2}\s(am|pm)/.test(s);
    },
    format: function (s) {
        s = s.replace(/\./g, " ");
        s = s.replace(/\:/g, " ");
        s = s.replace("am", "0");
        s = s.replace("pm", "1");
        s = s.split(" ");
        return $.tablesorter.formatFloat(new Date(s[0], s[1], s[2], s[3], s[4], s[5]).getTime() + parseInt(s[6]));
    },
    type: "numeric" 
});

И я называю это как:

myapp.Sort = function () {
    $(myapp.config.tblHistory).tablesorter({ headers: { 1: { sorter: 'srsDate'} }, sortList: [[0, 0]] });
}

Я ссылался: date Сортировка Проблема с Jquery Tablesorter для создания нового парсера. Результаты сортировки не работают. Он вообще не сортирует данные.

1 Ответ

5 голосов
/ 27 сентября 2011

Сам я не использую TableSorter, однако вы рассматривали возможность использования Date.parse(datestring)?

Тогда ваша функция может быть просто:

ts.addParser({
    id: "srsDate",
    is: function (s) {
        return /\d{1,2}\.\d{1,2}\.\d{1,4} \d{1,2}:\d{1,2}\s(am|pm)/.test(s);
    },
    format: function (s) {
        return Date.parse(s);
    },
    type: "numeric" 
});

Это будетвернуть эту дату как метку времени Unix в миллисекундах.

Если вы хотите вернуть ее как число секунд , просто разделите результат Date.parse(s) на 1000:

function: function (s) {
    return (Date.parse(s) / 1000);
}

Хотя любой метод подходит, если вы просто сортируете данные.

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