如何使用javascript/jquery从日期中减去年份

myzjeezk  于 2023-05-06  发布在  jQuery
关注(0)|答案(1)|浏览(277)

此问题已在此处有答案

JavaScript date range between date range(4个答案)
Check if one date is between two dates(14个回答)
4天前关闭。
如何使用jquery或javascript将年份添加到日期?

u5i3ibmn

u5i3ibmn1#

使用moment.js,您可以使用moment.diff(targetDate, 'years')获取现在和另一个日期之间的年份差异以进行验证。

$('#myForm > input[type="submit"]').click((e)=>{
  let date1 = $('#date1');
  let date2 = $('#date2');
  let minRange = 18; 
  let maxRange = 73;
  let errors = [];
  for(let input of [date1,date2]) {
    if(input.val()) {
      let diffYears = moment().diff(input.val(), 'years');
      if(!(diffYears >= minRange && diffYears <= maxRange)) {
        errors.push(`${input.attr('id')} is not between ${minRange} and ${maxRange} years ago.`);
      }
     } else {
      errors.push(`Invalid input for ${input.attr('id')}.`);
     }
  }
  if(errors.length) {
    $('#errors').html(errors.join('<br />'));
    return false;
  }
});

$('#date1').val(moment().add(-18,'years').format('YYYY-MM-DD'));
$('#date2').val(moment().add(-74,'years').format('YYYY-MM-DD'))
#errors {
  color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myForm" action="#">
  <div>
    <label>Date 1</label>
    <input id="date1" type="date" />
  </div>
  <div>
    <label>Date 2</label>
    <input id="date2" type="date" />
  </div>
  <input type="submit" />
  <div id="errors"></div>
</form>

相关问题