【问题标题】:Compare multiple Dates in jQuery在 jQuery 中比较多个日期
【发布时间】:2017-10-29 23:08:33
【问题描述】:

在 jQuery onClick 中实现以下最有效的方法是什么。我不是在所有日期中寻找最小/最大日期:

date1

<div id="dateFields">
  <input type="date" id="date1"/>
  <input type="date" id="date2"/>
  <input type="date" id="date3"/>
  <input type="date" id="date4"/>
  <input type="date" id="date5"/>
</div>
<button onClick="compareDate()">Compare Now</button>

并非所有日期都必须输入,可以按任意顺序输入。应该显示一个警报消息,例如:

alert('date1 &gt; date5') 仅输入 date1 和 date5 时 date1 > date5

alert('date2 > date 4')
alert('date 2 > date 5')

当输入 date2, date4, date5 where date2 > date4, date 2 > date 5 and date4

【问题讨论】:

  • 为什么不直接使用类来代替date1date2等?
  • 啊,我不想要最小/最大日期,而是按我想要的顺序验证日期文本框.. 可能是一个改变

标签: jquery date


【解决方案1】:

这里有一个解决方案https://jsfiddle.net/m0543d5j/

compareDate = function(){
  var dateObj = {};
  $('input[type=date]').each(function(){
    if($(this).val().length !== 0){
      dateObj[$(this).attr('id')] = $(this).val();
    }
  });
  var dateid = Object.keys(dateObj);

  for(var i=0; i<dateid.length-1; i++) {
    for(var j=1; j<dateid.length; j++){
      if(dateObj[dateid[i]] > dateObj[dateid[j]])
      	console.log( dateid[i]  + " > " + dateid[j]);
    }
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="dateFields">
  <input type="date" id="date1"/>
  <input type="date" id="date2"/>
  <input type="date" id="date3"/>
  <input type="date" id="date4"/>
  <input type="date" id="date5"/>
</div>
<button onClick="compareDate()">Compare Now</button>

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    相关资源
    最近更新 更多