YADCF:range_date 过滤器不适用于特定日期格式
YADCF : range_date filter doesn't work with specific date format
我无法使 yadcf 的 range_date 过滤器工作。
我将它与 datatables.net 一起使用。而且我不知道我是否遗漏了什么或者它是否是一个错误。
我正在为传递给数据表的原始数据使用这种日期格式:YYYY-MM-DDTHH:mm
。
我使用这种格式在日期时间选择器中显示日期:DD/MM/YYYY
。
我查看了 yadcf 插件内部以了解它的作用,它似乎从传递给数据表的原始值中获取行日期(在我的例子中是这种格式:'YYYY-MM-DDTHH:mm')和使用 moment_date_format
中提供的格式阅读它。然后它将此日期与范围过滤器中的日期进行比较,这些日期的格式为:'DD/MM/YYYY',但 yadcf 仍使用 moment_date_format
.
中提供的格式读取它
我做了一个 fiddle 它显示了问题:
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,
}
},
]);
});
感谢您的帮助。
现在你可以通过为 moment_date_format
和 filter_plugin_options: { format: 'YYYY-MM-DDTHH:mm',
设置相同的日期格式来解决它,它发生是因为即使 filter_plugin_options.format
用于稍后输出日期选择器日期选择在过滤逻辑 addRangeDateFilterCapability
中 moment_date_format
被用来解析它(你可以称之为错误),所以现在使用相同的格式,此外你可以用 jsfiddle [= 打开一个问题23=] 附在 yadcf 仓库上。
.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,
}
},
我无法使 yadcf 的 range_date 过滤器工作。 我将它与 datatables.net 一起使用。而且我不知道我是否遗漏了什么或者它是否是一个错误。
我正在为传递给数据表的原始数据使用这种日期格式:YYYY-MM-DDTHH:mm
。
我使用这种格式在日期时间选择器中显示日期:DD/MM/YYYY
。
我查看了 yadcf 插件内部以了解它的作用,它似乎从传递给数据表的原始值中获取行日期(在我的例子中是这种格式:'YYYY-MM-DDTHH:mm')和使用 moment_date_format
中提供的格式阅读它。然后它将此日期与范围过滤器中的日期进行比较,这些日期的格式为:'DD/MM/YYYY',但 yadcf 仍使用 moment_date_format
.
我做了一个 fiddle 它显示了问题: 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,
}
},
]);
});
感谢您的帮助。
现在你可以通过为 moment_date_format
和 filter_plugin_options: { format: 'YYYY-MM-DDTHH:mm',
设置相同的日期格式来解决它,它发生是因为即使 filter_plugin_options.format
用于稍后输出日期选择器日期选择在过滤逻辑 addRangeDateFilterCapability
中 moment_date_format
被用来解析它(你可以称之为错误),所以现在使用相同的格式,此外你可以用 jsfiddle [= 打开一个问题23=] 附在 yadcf 仓库上。
.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,
}
},