我有2个“ el”格式的日期选择器,当我选择一个日期时,它们按以下方式过滤数据表(data [4],带时间的日期):
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
//var min = $("#apo").datepicker.val();
//var max = $("#ews").datepicker.val();
var min = $('#apo').datepicker("getDate");
var max = $('#ews').datepicker("getDate");
var startDate = new Date(data[4]);
if (min == null && max == null) { return true; }
if (min == null && startDate <= max) { return true;}
if (max == null && startDate >= min) {return true;}
if (startDate <= max && startDate >= min) { return true; }
return false;
});
页面加载时,两个日期选择器的值为NULL,数据表显示所有记录。
$("#apo").datepicker({ language: 'el', autoclose: true, onSelect: function () { table.draw(); }});
$("#ews").datepicker({ language: 'el', autoclose: true, onSelect: function () { table.draw(); }});
$('#apo, #ews').change(function () {
table.draw();
});
当我从日期选择器中选择一个日期时,过滤器可以正常工作,但是我获得的日期(通过console.log)是这样的:
Date 2018-10-31T22:00:00.000Z
在控制台中,它出现了很多次,大约100次。
1)为什么日期在控制台中显示多次? 2)
有什么区别 $("#ews").datepicker.val();
和
$('#apo').datepicker("getDate");
第一个返回字符串,而第二个返回Date?
3)我希望第二个日期选择器中的日期将+1天添加到所选日期,以便我可以以正确的方式进行过滤,因为如果我在两个日期选择器中都选择了同一天,它将返回0条记录。我能做到吗?
4)最后,我从Datepicker得到的时间是Date 2018-10-31T22:00:00.000Z,这是UTC时间。在这里,我们是+02:00,我如何使其显示正确的时间并不是UTC?我可以使用moment.js吗?
谢谢大家。