4

Tablesorterプラグインを使用してテーブルを並べ替えています。4番目の列は、次の形式の日付フィールドです。

-> 2013年1月30日

-> 2013年2月1日

フォーマットをソートしようとすると、間違ったソートになります。

マイビューページ:(日付列の1つ)

<td onclick="viewTrainingeDetails(${privateTrainingInstance?.id})"><g:formatDate format="dd MMM yyyy" date="${privateTrainingInstance?.startDate}" /></td>

jquery

 $(function() {
         $("#myTable").tablesorter(); 
   });
4

1 に答える 1

13

このカスタムパーサーを追加してみてください(デモ):

$.tablesorter.addParser({
    id: "date",
    is: function (s) {
        return false;
    },
    format: function (s, table) {
        return new Date(s).getTime() || '';
    },
    type: "numeric"
});

次に、次のようにプラグインを初期化します。

$('table').tablesorter({
    headers: {
            5: { sorter: 'date' }
        }
});

更新:最良の結果を得るには、有効な日付を返していることを確認してください。

$.tablesorter.addParser({
    id: "date",
    is: function (s) {
        return false;
    },
    format: function (s, table) {
        var date = new Date(s);
        return date instanceof Date && isFinite(date) ? date.getTime() : '';
    },
    type: "numeric"
});
于 2013-01-25T02:35:39.293 に答える