根据datetimepicker选择的日期计算年龄

首先上图看一下实现的效果:


html:(切记input加上value)

    <div class="form-group">
      <div class="col-md-4 control-label">
        <label>出生日期:</label>
      </div>
      <div class="controls col-md-5">
        <input class="form-control calendar-item" name="birthday" type="text" id="birthday" value={{ activityMember.birthday|date('Y-m-d') }} readonly="true">
        <i class="es-icon es-icon-calendar text-xlg"></i>
      </div>
      <div class="text-left color-gray">
        <span class="mlm">年龄:</span><input class="js-get-age" type="text" name="age" value=""readonly="true">      
      </div>
    </div>

js:

  $('#birthday').change(function(){
    var strBirthday = $('#birthday').val();
    $('.js-get-age').val(jsGetAge(strBirthday));
  })

  function jsGetAge(strBirthday){         
    var returnAge;  
    var strBirthdayArr=strBirthday.split("-");  
    var birthYear = strBirthdayArr[0];  
    var birthMonth = strBirthdayArr[1];  
    var birthDay = strBirthdayArr[2];  
      
    d = new Date();  
    var nowYear = d.getFullYear();  
    var nowMonth = d.getMonth() + 1;  
    var nowDay = d.getDate();  
      
    if(nowYear == birthYear){  
      returnAge = 0;//同年 则为0岁  
    }  
    else{  
      var ageDiff = nowYear - birthYear ; //年之差  
      if(ageDiff > 0){  
        if(nowMonth == birthMonth) {  
          var dayDiff = nowDay - birthDay;//日之差  
          if(dayDiff < 0)  
          {  
            returnAge = ageDiff - 1;  
          }  
          else  
          {  
            returnAge = ageDiff ;  
          }
        }  
        else  
        {  
          var monthDiff = nowMonth - birthMonth;//月之差  
          if(monthDiff < 0)  
          {  
            returnAge = ageDiff - 1;  
          }  
          else  
          {  
            returnAge = ageDiff ;  
          }  
        }  
      }  
      else  
      {  
        returnAge = -1;//返回-1 表示出生日期输入错误 晚于今天  
      }  
    }    
    return returnAge;//返回周岁年龄     
  }  


总结一下就是:

1,给datepicker加一个change事件;

2,执行计算年龄的function;

3,将返回的周岁数赋给要输出的标签里面。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值