Datepicker实际日期时间值(UTC)出现问题

时间:2018-11-12 14:27:47

标签: jquery datepicker datatables

我有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吗?

谢谢大家。

0 个答案:

没有答案