1

最近、jQuery/tablesorter テーブルで正しい日付形式を取得するのに役立ちました。クライアントは、表に会社をリストしており、列の 1 つを日付でソートできるようにしたいと考えています。そのうちのいくつかはポートフォリオ内の「アクティブ」な会社であり、他の会社は終了しており、それらは日付形式を使用する会社です。私が抱えている問題は、これらがすべて同じテーブルにあり、日付列が日付でソートされているため、「アクティブ」としてリストされている企業がリストの最初または最後にグループ化されますが、時系列が逆になっていることです。注文。

したがって、企業は現在、「アクティブ」>「アクティブ」>「アクティブ」> 2006 年 1 月 > 2010 年 3 月 > 2012 年 2 月などのように並べ替えられています。

これをパーサーに追加して、「アクティブ」文字列を現在の日付に変換し、企業を「アクティブ」>「アクティブ」>「アクティブ」>のようにソートする方法があるかどうかを確認したいと思います。 2012 年 2 月 > 2010 年 3 月 > 2006 年 1 月。

これは可能ですか?何か案は?これについて新しいスレッドを開始することにしました。これは、以前の新しい問題であり、正しい日付形式を機能させるためだけだったからです。以下にHTMLとコードを投稿しています。前もって感謝します。

<table id="myTable" class="tablesorter stripeMe sample" width="100%" cellpadding="0"  cellspacing="0">
<thead>
<th width="30%" align="left">COMPANY</th><th width="35%">DESCRIPTION</th><th width="17%"  align="left">INDUSTRY</th><th width="18%" align="left">EXIT DATE</th></tr></thead>
<tbody>
<tr><td width="30%">  Cartera Commerce, Inc. </td>
<td width="35%">Provides technology-enabled marketing and loyalty solutions 
</td><td width="17%">   Financials    </td> <td width="18%">Active</td>
</tr><tr><td width="30%">   Critical Information Network, LLC </td>
<td width="35%">Operates library of industrial professional training and certification materials 
</td><td width="17%">   Education    </td> <td width="18%">Active</td>
</tr><tr><td width="30%"> Cynergydata </td>
<td width="35%">Provides merchant payment processing services and related software products 
</td><td width="17%">   Merchant Processing    </td> <td width="18%">Active</td>
</tr><tr><td width="30%">    </td>
<td width="35%">Operates post-secondary schools  
</td><td width="17%">   Education    </td> <td width="18%">Active</td>
</tr><tr><td width="30%">  CorVu Corporation</td>
<td width="35%">Develops and distributes performance management software products and related services 
</td><td width="17%">   Information Technology    </td> <td width="18%">May 2007</td>
</tr><tr><td width="30%">    Fischer Imaging Corporation </td>
 <td width="35%">Manufactures and services specialty digital imaging systems and other  medical devices
</td><td width="17%">   Healthcare    </td> <td width="18%">Sep 2005</td>
</tr><tr><td width="30%">   Global Transportation Services, Inc.  </td>
<td width="35%">Provides air and ocean transportation and logistics services
</td><td width="17%">   Transportation     </td> <td width="18%">Mar 2010</td>
</tr><tr><td width="30%">  HMP/Rita  </td>
<td width="35%">Operates as a specialty medical device company that manufactures and markets vascular and spinal access systems
</td><td width="17%">   Healthcare    </td> <td width="18%">Dec 2006</td>
</tr>

</tbody>
</table>

そして現在のjQueryパーサー:

$.tablesorter.addParser({
id: 'monthYear',
is: function(s) {
    return false;
},
format: function(s) {
    var date = s.match(/^(\w{3})[ ](\d{4})$/);
    var m = date ? date[1] + ' 1 ' || '' : '';
    var y = date && date[2] ? date[2] || '' : '';
    return new Date(m + y).getTime() || '';
},
type: 'Numeric'
});

$('#myTable').tablesorter({

headers: {
    3: {
        sorter: 'monthYear'
    }
}

});
4

1 に答える 1

0

実際には単純な変更にすぎません。パーサーを次のように変更します。

var today = new Date().getTime();

$.tablesorter.addParser({
    id: 'monthYear',
    is: function(s) {
        return false;
    },
    format: function(s) {
        // remove extra spacing
        s = $.trim(s.replace(/\s+/g, ' '));
        // process date
        var date = s.match(/^(\w{3})[ ](\d{4})$/),
            m = date ? date[1] + ' 1 ' || '' : '',
            y = date && date[2] ? date[2] || '' : '';
        return /active/i.test(s) ? today : new Date(m + y).getTime() || '';
    },
    type: 'Numeric'
});

テーブル セルの「アクティブ」という単語は、大文字と小文字が区別されません。そして、これが動作するデモです。将来の日付 (この場合は 2012 年 7 月) は、「アクティブ」の上に並べ替えられることに注意してください。

于 2012-05-13T18:01:01.873 に答える