YADCF:range_date过滤器不适用于特定的日期格式

时间:2018-12-05 11:03:48

标签: datatables eonasdan-datetimepicker yadcf

我无法使yadcf的range_date过滤器正常工作。 我在datatables.net中使用它。而且我不知道我是否缺少某些东西或它是否是一个错误。

我将这种日期格式用于传递到数据表YYYY-MM-DDTHH:mm的原始数据。

我正在使用这种格式在datetime-picker中显示日期:DD/MM/YYYY

我已经查看了yadcf插件的内部功能,似乎从传递给datatable的原始值中获取行日期(在我的情况下,格式为'YYYY-MM-DDTHH:mm' ),并使用moment_date_format中提供的格式进行阅读。然后,它将这个日期与范围过滤器中的日期进行比较,这些日期的格式为:“ DD / MM / YYYY”,但是yadcf仍使用moment_date_format中提供的格式读取日期。

我做了一个小提琴,显示了这个问题: http://jsfiddle.net/vatvat99/go5mxw0d/32/

var data = [
  {date: '2018-12-05T00:00'},
  {date: '2018-12-04T00:00'},
  {date: '2018-12-03T00:00'},
  {date: '2018-12-02T00:00'},
  {date: '2018-12-01T00:00'},
];

$(document).ready(function () {
  $('#example').dataTable({
    data: data,                    
    columnDefs: [{
      defaultContent: "-",
      targets: "_all"
    }],
    columns: [
      {
        name: 'date',
        data: 'date',
      }
    ],
  }).yadcf([
    { 
      column_number: 0, 
      filter_container_id: 'dateContainer',
      filter_type: 'range_date', 
      datepicker_type: 'bootstrap-datetimepicker',
      moment_date_format: 'YYYY-MM-DDTHH:mm',
      filter_plugin_options: {
        format: 'DD/MM/YYYY',
        showClear: true,
      }
    },
  ]);
});

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

现在,您可以通过为moment_date_formatfilter_plugin_options: { format: 'YYYY-MM-DDTHH:mm',设置相同的日期格式来解决该问题,这是因为即使以后filter_plugin_options.format用于输出日期选择器日期选择,过滤逻辑addRangeDateFilterCapability moment_date_format被用来解析它(您可以将其称为错误),因此,现在使用相同的格式,此外,您还可以打开一个问题,并在yadcf上附加jsfiddle链接回购。

.yadcf([ { column_number: 0, filter_container_id: 'dateContainer', filter_type: 'range_date', datepicker_type: 'bootstrap-datetimepicker', moment_date_format: 'YYYY-MM-DDTHH:mm', filter_plugin_options: { format: 'YYYY-MM-DDTHH:mm', showClear: true, } },

See working jsfiddle