jQuery 日期之间的同位素过滤

jQuery Isotope filtering between dates

我正在制作一个事件日历,我想显示两个日期选择器字段之间的所有事件,我将不胜感激每一个提示。

同位素代码:

// filter the events by datepicker fields when search button is clicked
$('#calbtn').on( 'click', function( event ) {

    // get startdate from datepicker field
    var startdate = $('#calstartday').val();
    // get enddate from datepicker field
    var enddate = $('#calendday').val();

    $grid.isotope({
      filter: '[data-startdate="' + startdate + '"], [data-enddate="' + enddate + '"]'
    });
});

到目前为止这一切正常,但只显示具有确切开始和结束日期的事件。

为了演示目的,事件看起来是这样的:

<div data-startdate="2022-01-01" data-enddate="2022-04-24" class="event__item">
<div data-startdate="2023-01-01" data-enddate="2022-04-24" class="event__item">
<div data-startdate="2024-01-01" data-enddate="2022-04-24" class="event__item">
<div data-startdate="2025-01-01" data-enddate="2022-04-24" class="event__item">

我的想法是: 我确信我需要一个自定义函数来过滤,我在其中比较两个时间戳并检查事件是否在两个选定日期之间。但是我没有在文档或其他地方找到一种方法,如何 return 有效事件。

有人给我提示吗?

使用 filter function.

$('#calbtn').on( 'click', function( event ) {
    var startdate = $('#calstartday').val(),
        enddate = $('#calendday').val();

    $grid.isotope({
        filter: function () {
            return startdate >= $(this).data("startdate") && enddate < $(this).data("enddate");
        }
    });
});