【发布时间】:2014-07-09 15:49:25
【问题描述】:
我正在做一个项目,我正在接收 jQuery DataTable 的日期作为字符串格式 (mm/dd/yyyy)。当我进行排序时,它会像字符串一样对其进行排序,这会导致它按月顺序分组,这是不正确的。我想使用 'sType: date' 来处理排序,但由于它不是日期对象,因此不会对其进行排序。有没有办法在将其添加到数据表时将其解析为日期?
我确实找到了另一种执行此操作并对其进行正确排序的方法,但它仅适用于 ie8 以外的浏览器(该表有大约 1000 行,它会导致脚本超时错误,chrome 会立即执行此操作)
jQuery.fn.dataTableExt.oSort['us_date-asc'] = function(a,b) {
if($(a).text()=="" && $(b).text()==""){
return 0;
}
else if($(a).text()=="" || $(b).text()==""){
return $(a).text()=="" ? -1 : 1;
}
else{
var x = new Date($(a).text());
var y = new Date($(b).text());
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
};
jQuery.fn.dataTableExt.oSort['us_date-desc'] = function(a,b) {
if($(a).text()=="" && $(b).text()==""){
return 0;
}
else if($(a).text()=="" || $(b).text()==""){
return $(a).text()=="" ? 1 : -1;
}
else{
var x = new Date($(a).text());
var y = new Date($(b).text());
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
}
};
然后我可以使用它
"sType": 'us_date'
对我能做什么有什么建议吗?
【问题讨论】:
标签: jquery html asp.net internet-explorer-8 datatables