Javascript DataTables-排序时忽略空的时刻日期值

Javascript DataTables-排序时忽略空的时刻日期值,javascript,html,datatables,Javascript,Html,Datatables,我正在使用DataTables并尝试忽略排序时基于MomentJs的日期列上的空值 e、 g:2016年11月8日晚上9:47 目前我有这个,它按预期对值进行排序,但它也包含空单元格 $.fn.dataTable.moment('DD MMM YYYY hh:mm a'); $('.table-data').DataTable(); 我尝试了下面的自定义排序方法,它最初发布在这里 jQuery.extend(jQuery.fn.dataTableExt.oSort{ “日期asc”:函数(a

我正在使用DataTables并尝试忽略排序时基于MomentJs的日期列上的空值

e、 g:
2016年11月8日晚上9:47

目前我有这个,它按预期对值进行排序,但它也包含空单元格

$.fn.dataTable.moment('DD MMM YYYY hh:mm a');
$('.table-data').DataTable();
我尝试了下面的自定义排序方法,它最初发布在这里

jQuery.extend(jQuery.fn.dataTableExt.oSort{
“日期asc”:函数(a、b){
var x=Date.parse(a);
var y=日期解析(b);
如果(x==y){返回0;}
if(isNaN(x)| | xy){return-1;}
},
“日期描述”:函数(a,b){
var x=Date.parse(a);
var y=日期解析(b);
如果(x==y){返回0;}
if(isNaN(y)| | xy){返回1;}
}
});
$('.table data').DataTable({
columnDefs:[
{类型:'date',目标:-1}
]
});
但似乎没有什么不同。如果你能帮我解决这个问题,我将不胜感激

更新 我想将空值行移到最后一行,这样它就不会在第一个位置可见。像这样的

试试这个:

$(document).ready(function() {
  //$.fn.dataTable.moment('DD MMM YYYY hh:mm a');
  jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    'dateNonStandard-asc': function (a, b) {
      var x = Date.parse(a);
      var y = Date.parse(b);
      if (x == y) { return 0; }
      if (isNaN(x) || x < y) { return 1; }
      if (isNaN(y) || x > y) { return -1; }
    },
    'dateNonStandard-desc': function (a, b) {
      var x = Date.parse(a);
      var y = Date.parse(b);
      if (x == y) { return 0; }
      if (isNaN(y) || x < y) { return -1; }
      if (isNaN(x) || x > y) { return 1; }
    }
  });
  $('.table-data').DataTable({
    columnDefs: [
      { type: 'dateNonStandard', targets: -1 }
    ]
  });
});
$(文档).ready(函数(){
//$.fn.dataTable.moment('DD-MMM-yyy-hh:mm-a');
extend(jQuery.fn.dataTableExt.oSort{
“日期非标准asc”:函数(a,b){
var x=Date.parse(a);
var y=日期解析(b);
如果(x==y){返回0;}
if(isNaN(x)| | xy){return-1;}
},
“dateNonStandard desc”:函数(a,b){
var x=Date.parse(a);
var y=日期解析(b);
如果(x==y){返回0;}
if(isNaN(y)| | xy){返回1;}
}
});
$('.table data').DataTable({
columnDefs:[
{type:'dateNonStandard',targets:-1}
]
});
});
如果您在排序方面做了一些不标准的事情,最好弄清楚;-)


它似乎做了你们想做的事,我认为你们的逻辑是正确的,但利用这一时刻是矫枉过正的。您可能需要对它进行更多的测试,但是…

您希望在对表进行排序时删除行,还是在构建数据表时删除行?@DevDig我希望将空值行移到最后一行,以便它在第一处不可见。像这样的谢谢你。这管用!。如果您能在每行旁边添加一些评论,我将不胜感激。我不明白。请检查此JSFIDLE以获取评论:。希望有帮助。
$(document).ready(function() {
  //$.fn.dataTable.moment('DD MMM YYYY hh:mm a');
  jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    'dateNonStandard-asc': function (a, b) {
      var x = Date.parse(a);
      var y = Date.parse(b);
      if (x == y) { return 0; }
      if (isNaN(x) || x < y) { return 1; }
      if (isNaN(y) || x > y) { return -1; }
    },
    'dateNonStandard-desc': function (a, b) {
      var x = Date.parse(a);
      var y = Date.parse(b);
      if (x == y) { return 0; }
      if (isNaN(y) || x < y) { return -1; }
      if (isNaN(x) || x > y) { return 1; }
    }
  });
  $('.table-data').DataTable({
    columnDefs: [
      { type: 'dateNonStandard', targets: -1 }
    ]
  });
});