Jquery过滤器比较日期

jquery filter comparing dates

本文关键字:日期 比较 过滤器 Jquery      更新时间:2023-09-26

我目前正在尝试创建一个过滤器,允许我使用jQueryUI日期拾取器选择日期。然后将此日期与隐藏输入的值进行比较。如果隐藏日期小于使用选择器选择的日期,则隐藏输入的父div将使用.hide()函数隐藏。

<div data-value="I0001-APP0277-S" class="server_wrapper" style="display: block;">
<div class="detail_wrapper">....</div>
<input type="hidden" class="buildStart_hidden" value="4/25/2014 1:46:19 pm">
</div>
<input type="text" id="buildStart_filter" class="secondary_live_filter hasDatepicker">

使用此代码:

$('#buildStart_filter').change(function(){
    var date = $(this).val();
    $('.buildStart_hidden').each(function(){
        if(date>$(this).val().split(' ')[0]){
            $(this).parent().hide();
        }
    });
});

但是使用这个代码不起作用。我认为这可能是由于字符串值的比较,而不是日期值。我可以改变什么来使比较生效?

Maybe:

您缺少从DATE中删除小时

date.split(' ')[0] > $(this).val().split(' ')[0]

经过一番努力,我终于找出了问题所在。我正在尝试比较字符串类型而不是日期类型。

这个代码现在工作,因为hiddenDateFilterDateDate()类型,因此可以使用>=运算符求值:

$('#buildStart_filter').change(function(){
    var filterDate = $('#buildStart_filter').datepicker('getDate');
    $('.buildStart_hidden').each(function(){
        var hiddenDateStr = $(this).val();
        var hiddenDate = new Date(hiddenDateStr);
        if(filterDate>=hiddenDate){
            $(this).parent().hide();    
        }else{
            $(this).parent().show();
        }
    });
});