jquery数据表降序排序不使用“order”选项

时间:2017-01-23 12:14:39

标签: javascript jquery html sorting datatables

我正在尝试订购我的jQuery数据表(下面),但无法获得第一列按降序排序。我尝试了"order": [[0, 'desc']],但它不起作用。 The JS fiddle is here

 <table id="datatable-table" class="table table-striped table-hover">
    <thead>
       <tr>
          <th class="hidden-xs" style="width: 10%">Submission Date</
          <th class="hidden-xs" style="width: 10%">Start Date</th>
          <th class="hidden-xs" style="width: 10%">End Date</
       </tr>
     </thead>

1 个答案:

答案 0 :(得分:0)

根据您的JSFiddle,您想要使用d M Y格式对输出日期的第一列进行排序,以便将日期(UK 01/01/2017)表示为01 Jan 2016?这不是DataTables理解的格式,因此您需要添加这样的排序方法:

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
  "dateNonStandard-asc": function (a, b) {
    var x = parseInt(moment(a, "DD MMM YYYY").format("X"), 10);
    var y = parseInt(moment(b, "DD MMM YYYY").format("X"), 10);
    return (x == y) ? 0 : (x < y) ? 1 : -1;
  },
  "dateNonStandard-desc": function (a, b) {
    var x = parseInt(moment(a, "DD MMM YYYY").format("X"), 10)
    var y = parseInt(moment(b, "DD MMM YYYY").format("X"), 10);
    return (x == y) ? 0 : (x < y) ? -1 : 1;
  }
});

这是一个有效的example,我希望它有所帮助。