js根据生日计算周岁 以及Date的相关用法

<html>
<head>
<script>
function getAgeByBirthday(){
 var sBirthday = document.getElementById("birthday").value;
  var temp = new Date();
  var now = new Date(temp.getFullYear() + "/" + (temp.getMonth() + 1) + "/" + temp.getDate());
  alert(temp.getMonth() + 1);
  var year = null;
  var month = null;
  var day = null;
  if (sBirthday.length == 6) {//yymmdd
   year = parseInt("19" + sBirthday.substring(0,2));
   month = sBirthday.substring(2,4);
   day = sBirthday.substring(4, 6);
  }
  else if(sBirthday.length == 8){//yyyymmdd
   year = parseInt(sBirthday.substring(0,4));
   month = sBirthday.substring(4,6);
   day = sBirthday.substring(6, 8);
  }
  else if(sBirthday.length == 10){//yyyy-mm-dd
   year = parseInt(sBirthday.substring(0,4));
   month = sBirthday.substring(5,7);
   day = sBirthday.substring(8, 10);
  }
  var age = now.getFullYear() - year;
  alert('age1:'+age);
  temp = new Date(now.getFullYear() + "/" + month + "/" + day);
  if (temp.getTime() > now.getTime()) {//周岁的处理
   age = age - 1;
  }
  
  document.getElementById("date2").value=age; 
}
  </script> 
  </head>
  <body>
  <from name="theform"> 生日:<input name="birthday" id="birthday" οnblur="getAgeByBirthday()"> 年龄(周岁):<input name="date2" id="date2"> </form> 
  </body>

</html>

注意:必须到具体的天,才算一岁!

从网上找到其他人的做法:

<html>
<head>
<script>
function getAgeByBirthday(){
var strBirthday = document.getElementById("birthday").value; 
	var returnAge;
 var strBirthdayArr = strBirthday.split("-");
 var birthYear = strBirthdayArr[0];
 var birthMonth = strBirthdayArr[1];
 var birthDay = strBirthdayArr[2];

 d = new Date();
 var nowYear = d.getYear();
 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 表示出生日期输入错误 晚于今天
  }
 }


		
		document.getElementById("date2").value=returnAge; 
}
  </script> 
  </head>
  <body>
  <from name="theform"> 生日(yyyy-mm-dd):<input name="birthday" id="birthday" οnblur="getAgeByBirthday()"> 年龄:<input name="date2" id="date2"> </form> 
  </body>

</html>


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值