function computeAge(startDate) {
// 获得今天的时间
var date = new Date()
startDate = new Date(startDate)
var newDate = date.getTime() - startDate.getTime()
// 向下取整 例如 10岁 20天 会计算成 10岁
// 如果要向上取整 计算成11岁,把floor替换成 ceil
return Math.floor(newDate / 1000 / 60 / 60 / 24 / 365)
}
alert(computeAge('1989-02-19'))
就可以了。
function geb(obj){
return document.getElementById(obj)//引入对象ID,返回某个对象
}
function tmValue(obj)
{
return geb(obj)[geb(obj).selectedIndex].value//引入select的ID,返回select的已选中的项的value值
}
function retAge()
{
var
year=tmValue('optionYear')*1,//取得选中年份的值,并转换为数字
month=tmValue('optionMonth')*1,//取得选中月份的值,并转换为数字
day=tmValue('optionDay')*1//取得选中日的值,并转换为数字
var
birthday=new data(),now=birthday//声明个生日日期变量和现在日期变量,此时两个变量都是现在的系统时间
birthday.setFullYear(year,month,day)//将年月日付给生日日期变量
var fulltime=now-birthday//得到两个日期所距离的毫秒数
//楼下说的很对,要考虑月份,所以我对我的代码作出如下调整
var age=now.getFullYear() - fulltime.getFullYear()//返回距离年
if((now.getMonth()-birthday.getMonth())>0)age+1//如果现在的月份比生日月份大,年龄变量加1
return age//返回计算后的年龄
// return fulltime /1000/60/60/24返回距离多少天
//还有你上面的input 没有 type='text'
//因为是手写的代码,所以可能存在大小写错误,自己改下
}
这个自己写就是了,下面是大概的规则18位身份证
前1~2位数字表示:所在省份的代码;
第3~4位数字表示:所在城市的代码;
第5~6位数字表示:所在区县的代码;
第7~14位数字表示:出生年、月、日;
第15~16位数字表示:所在地的派出所的代码;
第17位数字表示性别:奇数表示男性,偶数表示女性;
15位差距不大
前1~2位数字表示:所在省份的代码;
第3~4位数字表示:所在城市的代码;
第5~6位数字表示:所在区县的代码;
第7、8位为出生年份(两位数)
第9、10位为出生月份
第11、12位代表出生日期
第15位代表性别,奇数为男,偶数为女