医院的年龄计算是要求实岁,小于一年按月算,小于一天按天算
上菜
=======================
function getAge(birthday) {
function MyDateObj(t) {
return {
nowY: parseInt(t.getFullYear()),
nowM: parseInt(t.getMonth()) + 1,
nowD: parseInt(t.getDate())
};
}
var now = MyDateObj(new Date());
var br = MyDateObj(birthday);
var y = now.nowY - br.nowY;
var m = now.nowM - br.nowM;
// 过滤虚岁
if (now.nowM - br.nowM < 0 || (now.nowM - br.nowM == 0 && now.nowD - br.nowD < 0)) {
y--;
m=m+12;
}
console.log("计算出来的年", y);
// 大于一岁
if (y > 0) {
return y + "岁";
}
// 输出月
if (m < 0) {
m + 12;
}
console.log("计算出来的月", m);
if (now.nowD - br.nowD < 0) {
m--;
}
if (m > 0) {
return m + "月";
}
// 输出天
var d = (new Date(`${now.nowY}/${now.nowM}/${now.nowD}`).getTime()
- birthday.getTime()) / 1000 / 60 / 60 / 24;
return d + "天";
}
getAge(new Date('2020/07/31'));