Datatables 数据表-基于时间跨度的筛选

Datatables 数据表-基于时间跨度的筛选,datatables,Datatables,我在datatables中有一列包含数据,类似于以下内容: 0500-1300 0500-1430 0600-0915 0600-1000 0600-1100 0600-1115 0600-1130 0600-1200 0600-1215 0600-1300 0600-1315 我想要一个过滤器,不太不同的地方,有人可以选择一个从时间和一个到时间,然后将过滤数据 假设有人选择: FROM: 0600 TO: 1100 那么只有3个会出现。但是,如果我选择: FROM: 0500 TO: 14

我在datatables中有一列包含数据,类似于以下内容:

0500-1300
0500-1430
0600-0915
0600-1000
0600-1100
0600-1115
0600-1130
0600-1200
0600-1215
0600-1300
0600-1315
我想要一个过滤器,不太不同的地方,有人可以选择一个从时间和一个到时间,然后将过滤数据

假设有人选择:

FROM: 0600
TO: 1100
那么只有3个会出现。但是,如果我选择:

FROM: 0500
TO: 1400
一切都会显示出来。这可能吗?上面站点的插件会是我想要的吗?

试试这个:

const timeStringToInt = (time) => {
  const hoursMinutes = time.split(/[.:]/);
  const hours = parseInt(hoursMinutes[0], 10) * 60;
  var minutes = parseInt(hoursMinutes[1], 10);
  return hours + minutes;
}

$.fn.dataTable.ext.search.push(
  (settings, data, dataIndex) => {
    const min = timeStringToInt($('#timeFrom').val());
    const max = timeStringToInt($('#timeTo').val());
    const start = timeStringToInt(data[0]);
    const end = timeStringToInt(data[1]);
    return start >= min && end <= max;
  }
);
const timestringpoint=(time)=>{
const hoursMinutes=time.split(/[.:]/);
常数小时=parseInt(小时分钟[0],10)*60;
var minutes=parseInt(小时分钟[1],10);
返回时间+分钟;
}
$.fn.dataTable.ext.search.push(
(设置、数据、数据索引)=>{
const min=timestringpoint($('#timeFrom').val();
const max=timestringpoint($('#timeTo').val();
const start=timestringpoint(数据[0]);
const end=timestringpoint(数据[1]);
返回开始>=最小值和结束值(&D){
const hoursMinutes=time.split(“:”);
常数小时=parseInt(小时分钟[0],10)*60;
var minutes=parseInt(小时分钟[1],10);
返回时间+分钟;
}
常量stringToInt=(时间)=>{
var minutes=parseInt(time.slice(-2),10);
const hours=parseInt(时间片(0,-2),10)*60;
返回时间+分钟;
}
$.fn.dataTable.ext.search.push(
(设置、数据、数据索引)=>{
const min=timestringpoint($('#timeFrom').val();
const max=timestringpoint($('#timeTo').val();
常量时间部分=数据[0]。拆分(“-”;
常量开始=stringToInt(时间部分[0]);
const end=stringToInt(时间部分[1]);

return start>=min&&end我想你正在考虑在这里写你自己的,虽然这应该不会太难。我正在考虑将时间分割为两个隐藏列,并在它们上进行筛选,如此接近:-)当我在本地执行时,会得到“无法读取未定义的属性‘切片’”,但肯定我做错了什么
const timeStringToInt = (time) => {
  const hoursMinutes = time.split(":");
  const hours = parseInt(hoursMinutes[0], 10) * 60;
  var minutes = parseInt(hoursMinutes[1], 10);
  return hours + minutes;
}
const stringToInt = (time) => {
  var minutes = parseInt(time.slice(-2), 10);
  const hours = parseInt(time.slice(0, -2), 10) * 60;
  return hours + minutes;
}

$.fn.dataTable.ext.search.push(
  (settings, data, dataIndex) => {
    const min = timeStringToInt($('#timeFrom').val());
    const max = timeStringToInt($('#timeTo').val());
    const timeParts = data[0].split("-");
    const start = stringToInt(timeParts[0]);
    const end = stringToInt(timeParts[1]);
    return start >= min && end <= max;
  }
);