Отфильтруйте конкретный месяц в таблицах данных, используя фильтр - PullRequest
0 голосов
/ 23 июня 2019

У меня проблемы с фильтрацией одного конкретного месяца в таблицах данных (вводится с помощью элемента ввода).

Вот мой код:

HTML:

<div class="form-inline container-fluid mb-2">
  <label for="month_selector">month</label>
  <input type="month" id="month_selector" class="form-control form-control-sm mx-sm-3">
</div>

JS:

var dataTable = '';

function initDataTable (target, options) {
  let data = {
    stateSave: true,
    destroy: true,
  }
  
  $.extend(data, options)
  dataTable = $(target)
  dataTable.DataTable(data)
}

$(function () {
  //some other code
  initDataTable('.datatable')
})

//DATEPICKER
$('#month_selector').datepicker({
  "onSelect": function (date) {
    console.log(date)
    minDateFilter = new Date(date.getFullYear(), date.getMonth(), 1).getTime()
    maxDateFilter = new Date(date.getFullYear(), date.getMonth() + 1, 0).getTime()
    dataTable.draw()
  }
}).keyup(function () {
    minDateFilter = new Date(this.value.getFullYear(), this.value.getMonth(), 1).getTime()
    maxDateFilter = new Date(this.value.getFullYear(), this.value.getMonth() + 1, 0).getTime()
    dataTable.draw()
})

// Date range filter
minDateFilter = "";
maxDateFilter = "";

$.fn.dataTableExt.afnFiltering.push(
    function(oSettings, aData, iDataIndex) {
      if (typeof aData._date == 'undefined') {
        aData._date = new Date(aData[0]).getTime();
      }

      if (minDateFilter && !isNaN(minDateFilter)) {
        if (aData._date < minDateFilter) {
          return false;
        }
      }

      if (maxDateFilter && !isNaN(maxDateFilter)) {
        if (aData._date > maxDateFilter) {
          return false;
        }
      }

      return true;
    }
)

Проблема в том, что в переменной «date» указана сегодняшняя дата, и в ней говорится, что «getFullYear ()» не является функцией. А также я не уверен, что код фильтра правильный.

Код основан на этом

Знаете ли вы, где проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...