我最近有help getting the correct Date format on my jQuery / tablesorter table。客户在一个表中列出公司,并希望按日期排序其中一列,其中几个是投资组合中的“活跃”公司,而其他公司已退出,那些是使用日期格式的公司。我遇到的问题是,因为这些都在同一个表中,并且Date列按日期排序,列为“活动”的公司在列表的开头或结尾处被组合在一起,但是在反向时间顺序中顺序。
因此,这些公司目前的排序类似于'主动'> '主动'> '主动'> 2006年1月> 2010年3月> 2012年2月等。
我想看看是否有办法将其添加到解析器中,以便将'Active'字符串转换为当前日期,以便公司排序如下: '主动'> '主动'> '主动'> 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'
}
}
});
答案 0 :(得分: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'
});
表格单元格中的“active”一词将不区分大小写。这是一个demo of it working。请注意,在这种情况下,将来的日期(2012年7月)将排在“活动”之上。