1

テーブルには、カスタムの日付形式(dd-mm-yyyy HH:MM:SS)を含む最初の列を含むいくつかの列があります。

   <tr>
        <td>14-05-2012 13:57:04</td>
        <td>MTUPTTC01V4.3_E2E-LoadBalancer-1336992891.jtl</td>
        <td>14-05-2012 13:10:03</td>
        <td>14-05-2012 13:56:38</td>
        <td>00:46:35</td>
        <td>400</td>
        <td>152328</td>
        <td>2494</td>
        <td>1.64%</td>
        <td><a href="2012-05-14_13_56_52">Results</a></td>
    </tr>

次のカスタムパーサーを使用していますが、機能しないようです。

   $.tablesorter.addParser({
                id: 'jmeterDate',
                is: function(s) {
                        return false;
                },
                format: function(s) {
                        var date = s.match(/^(\d{2})-(\d{2})-(\d{4})[ ](\d{2}):(\d{2}):(\d{2})$/);
                        var d = date[1];
                        var m = date[2];
                        var y = date[3];
                        var H = date[4];
                        var M = date[5];
                        var S = date[6];
                        var MS = 0;
                        //return '' + y + m + d;
                        return new Date(y, m, d, H, M, S, MS).getTime();
                },
                type: 'Numeric'
        });
        $("#tablesorter-table").tablesorter({
                headers: {
                        0: {
                                sorter: 'jmeterDate'
                        }
                }
        });

完全な例については、次のリンクを参照してください

http://jsfiddle.net/Ese5A/1/

4

1 に答える 1

1

私は問題を解決しました。それはjQueryやカスタムテーブルソーターではなく、実際にはテーブルのコンテンツそのものでした。一部の日付の長さは、正規表現で期待されていたものではありませんでした。

2012年4月5日13:7:1

7と1に注意してください。以下の正規表現では、少なくとも2桁が必要です。

s.match(/ ^(\ d {2})-(\ d {2})-(\ d {4}):(\ d {2}):(\ d {2})$ /)

修理:

s.match(/ ^(\ d {1,2})-(\ d {1,2})-(\ d {4}):(\ d {1,2}):(\ d {1、 2})$ /)

1または2の長さの数字を受け入れるようになりました

于 2012-05-15T11:25:45.570 に答える