jquery过滤器比较日期

时间:2014-08-13 15:26:34

标签: javascript jquery html jquery-ui date

我目前正在尝试创建一个允许我使用jQueryUI datepicker选择日期的过滤器。然后将该日期与隐藏输入的值进行比较。如果隐藏日期小于使用选择器选择的日期,则隐藏输入的父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();
        }
    });
});

但使用此代码并不起作用。我认为这可能是由于字符串值而不是日期值的比较。我可以更改什么来进行比较?

2 个答案:

答案 0 :(得分:0)

也许:

您错过了从DATE删除小时

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

答案 1 :(得分:0)

经过多次工作,我发现了问题。 我试图比较字符串类型而不是日期类型。

此代码现在正在使用hiddenDateFilterDate Date()类型,因此可以使用>=运算符进行评估:

$('#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();
        }
    });
});