jQuery DataTables yadcf 大于等于(日期)

jQuery DataTables yadcf greater-than-equal to (date)

我正在使用 jQuery YADCF 插件过滤掉格式为 mm-dd-yyyy 的日期列。该插件开箱即用,效果很好,除了它只显示日期的精确匹配。如果确切的行在 table 中,它将显示 03/06/2016,但我真的希望它显示 03/06/2016 以及之后的所有日期。

我一直在尝试使用 DataTables 手动执行此操作,但没有真正有效或记录完备的 jQuery DataTables 版本可以执行 "greater than and equal to" 日期搜索。

有人使用 YADCF(或 DataTables solo)成功完成此操作吗?

我这里的用例是 YADCF 的一个边缘案例,所以我重新利用了 http://codepen.io/markmichon/pen/tmeGD 中的一些代码来让我的过滤器工作。这次我没有使用 YADCF,但很高兴知道它在那里。非常感谢插件作者 Daniel 对我的回复!!

// converts date strings to a Date object, then normalized into a YYYYMMMDD format (ex: 20131220). Makes comparing dates easier. ex: 20131220 > 20121220
var normalizeDate = function(dateString) {
    var date = new Date(dateString);
    var normalized = date.getFullYear() + '' + (("0" + (date.getMonth() + 1)).slice(-2)) + '' + ("0" + date.getDate()).slice(-2);
    return normalized;
}

var filterByDate = function(column, vesselDate) {
// Custom filter syntax requires pushing the new filter to the global filter array
    $.fn.dataTableExt.afnFiltering.push(
        function( oSettings, aData, iDataIndex ) {
            var rowDate = (aData[column]).replace(/<(?:.|\n)*?>/gm, '').match(/[0-9][0-9]\/[0-3][0-9]\/[0-9][0-9][0-9][0-9]/), // take my mm-dd-yyyy – timestamp format wrapped in hTML and strip it down to the mm-dd-yyy only
          start = normalizeDate(vesselDate); // use a normalized date (see code below)
          rowDate = normalizeDate(rowDate);
      // If our date from the row is between the start and end
      if (start <= rowDate) {
        return true;
      } else if (rowDate >= start && start !== ''){
        return true;
      } else {
        return false;
      }
    }
    );
};

$('#dateStart').on('change keyup', function(){
    dateStart = $(this).val();
    filterByDate(3, dateStart); //passing the column value to the function
    $vesselSchedule.draw(); //updating the table
});

$('#dateEnd').on('change keyup', function(){
    dateEnd = $(this).val();
    filterByDate(4, dateEnd);
    $vesselSchedule.draw();
});

https://www.nwseaportalliance.com/operations/vessels#/ 举个例子。