如何比较日期并在制表符js上进行相应的过滤?

如何解决如何比较日期并在制表符js上进行相应的过滤?

我正在使用制表器js来查看报告中的数据。我想根据两个日期(开始和结束)对其进行过滤。另外,“日期”数据也不是我表中的字段。我已经尝试了几种方法来尝试将我的数据与日历中的开始日期和结束日期进行比较,但到目前为止都没有任何结果。任何帮助,将不胜感激!这就是我从日历中检索日期的方法(顺便说一句),因为我在数据中有日期,所以将它们的格式调整为MM / DD / YYYY。

let date1 = new Date(startD._d);
    startD._d = ((date1.getMonth() > 8) ? (date1.getMonth() + 1) : ('0' + (date1.getMonth() + 1))) + '/' + ((date1.getDate() > 9) ? date1.getDate() : ('0' + date1.getDate())) + '/' + date1.getFullYear()
    let date2 = new Date(endD._d);
    endD._d =((date2.getMonth() > 8) ? (date2.getMonth() + 1) : ('0' + (date2.getMonth() + 1))) + '/' + ((date2.getDate() > 9) ? date2.getDate() : ('0' + date2.getDate())) + '/' + date2.getFullYear()

这是我尝试将检索到的日期与数据中的日期进行比较的最后一次尝试:

function updateDate(){
        $("#example-table").tabulator("addFilter",[
            {field:"date",type:">=",value:startD._d},//returns values greater than or equal to start date
            {field:"date",type:"<=",value:endD._d},//returns values less than or equal to end date 
        ]);
    }

解决方法

之所以发生这种情况,是因为您在字符串上使用了数字过滤器,因此它只是在进行简单的字符串比较而不是日期比较。

制表器将不会自动假定文本字符串为日期。您需要使用一个自定义过滤器,该过滤器使用内置的JavaScript Date对象或诸如moment 之类的库(可能最好,因为它可以为人处理不同的日期格式)来比较两个日期并检查它们小于值

//custom filter for date of birth column
function dateFilter(data,value){
    //data - the data for the row being filtered
    //value- params object passed to the filter

    return moment(data.dob,"DD/MM/YYYY").diff(moment(value,"DD/MM/YYYY")) > 0;
}

//set filter
table.setFilter(dateFilter,"14/04/1983");

有关详细信息,请查看Custom Filter Documentation

,

好吧,我试过一次,意思是对Tabulator site上的日期过滤器进行100次测试,我唯一能说的是:Tabulator上的日期过滤器无法正常工作!

我在Date of birth列上尝试了过滤器,结果是:

  • 平等比较器有效:

enter image description here

  • 像比较器一样工作:

enter image description here

  • 小于或等于比较器不起作用:

应该返回

enter image description here

但是返回

enter image description here

  • 比较器大于等于不起作用:

应该返回

enter image description here

但是返回

enter image description here

您注意到同一件事吗?我做错了什么?你能确认吗?我知道这不是答案,但是如您所见,库可能存在一些问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?