【问题标题】:jquery filter comparing datesjquery过滤比较日期
【发布时间】:2014-08-13 15:26:33
【问题描述】:

我目前正在尝试创建一个过滤器,允许我使用 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();
        }
    });
});

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

【问题讨论】:

    标签: javascript jquery html jquery-ui date


    【解决方案1】:

    也许:

    您错过了从 DATE 中删除小时

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

    【讨论】:

      【解决方案2】:

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

      此代码现在正在运行,因为 hiddenDateFilterDateDate() 类型,因此可以使用 &gt;= 运算符进行评估:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多