如何对具有空单元格的日期列进行排序
How to sort date columns that have empty cells
我使用的是位于http://www.kryogenix.org/code/browser/sorttable/
我遇到的一个问题是,排序无法处理混合了空单元格和日期的日期列。我的日期是"MM/DD/YYYY"格式。
从我所看到的,排序发生在脚本中:
sort_mmdd: function(a,b) {
mtch = a[0].match(sorttable.DATE_RE);
y = mtch[3]; d = mtch[2]; m = mtch[1];
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt1 = y+m+d;
mtch = b[0].match(sorttable.DATE_RE);
y = mtch[3]; d = mtch[2]; m = mtch[1];
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt2 = y+m+d;
if (dt1==dt2) return 0;
if (dt1<dt2) return -1;
return 1;
}
我不知道的是,当列上发生排序时,如何使空白单元格全部移到顶部或底部。
关于我该怎么做,有什么想法吗?
好吧,当没有匹配项时,可以返回一个数组,无论是在遥远的未来还是在遥远的过去。。。
mtch = a[0].match(sorttable.DATE_RE)|| ['nomatch','01','01','9000'];
我想出了如何让日期与空白单元格一起工作(见下文)。
在以后使用之前,最终测试了"mtch"。。。
sort_mmdd: function(a,b) {
mtch = a[0].match(sorttable.DATE_RE);
if ((mtch == null) || (mtch == undefined)) {
y = 0; d = 0; m = 0;
}
else {
y = mtch[3]; d = mtch[2]; m = mtch[1];
}
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt1 = y+m+d;
mtch = b[0].match(sorttable.DATE_RE);
if ((mtch == null) || (mtch == undefined)) {
y = 0; d = 0; m = 0;
}
else {
y = mtch[3]; d = mtch[2]; m = mtch[1];
}
if (m.length == 1) m = '0'+m;
if (d.length == 1) d = '0'+d;
dt2 = y+m+d;
if (dt1==dt2) return 0;
if (dt1<dt2) return -1;
return 1;
}
相关文章:
- 如何合并不同集合的游标并按日期排序
- 按日期排序和筛选
- SharePoint :按日期排序列表
- JavaScript对象按日期排序
- 跨浏览器d3.js SVG线条渲染日期排序
- extjssortable不按大小写和日期排序
- Angularjs 简单网格 表按日期排序
- 如何使用Javascript对html内容进行排序(按作者排序,按日期排序等)
- javascript foreach on array / json data 但按最新日期排序
- 量角器:检查数据按日期排序
- j查询日期排序
- Javascript按日期排序
- 如何使用Javascript按日期排序,然后按时间排序
- JS对象排序日期排序
- 我该如何调整.当它执行getJSON以返回按日期排序的结果时
- 按日期排序表-我应该使用AJAX/PHP/MySql还是纯Javascript
- Fuelux数据网格日期排序
- 无法设置“”的属性;某事“;在尝试创建按日期排序的数组时出现未定义错误
- 为什么数组不在javascript中按递增日期或递减日期排序
- jqGrid 树网格日期排序无法正常工作