js根据出生日期计算年龄及根据年龄计算出生日期
1.根据日期算年龄mymethod(birthday){//根据日期算年龄if(birthday){birthday=birthday.split('-');// 新建日期对象let date = new Date();// 今天日期,数组,同 birthdaylet today = [date.getFullYear(), date.getMonth() + 1, date.
·
1.根据日期算年龄
mymethod(birthday){//根据日期算年龄
if(birthday){
birthday=birthday.split('-');
// 新建日期对象
let date = new Date();
// 今天日期,数组,同 birthday
let today = [date.getFullYear(), date.getMonth() + 1, date.getDate()];
// 分别计算年月日差值
let age = today.map((val, index) => {
return val - birthday[index]
})
// 当天数为负数时,月减 1,天数加上月总天数
if (age[2] < 0) {
// 简单获取上个月总天数的方法,不会错
let lastMonth = new Date(today[0], today[1], 0)
age[1]--
age[2] += lastMonth.getDate()
}
// 当月数为负数时,年减 1,月数加上 12
if (age[1] < 0) {
age[0]--
age[1] += 12
}
console.log(age[0]+'岁'+age[1]+'月'+age[2]+'天');
}
}
// mymethod(2020-08-08)
2.根据年龄算日期
myfunction(ageYear,ageMonth,ageDay){//根据年龄算日期
var subYear = parseInt(ageYear);
var subMonth = parseInt(ageMonth);
var subDay = parseInt(ageDay);
var now = new Date();
var nowYear = now.getFullYear();
var nowMonth = now.getMonth()+1;
var nowDay = now.getDate(); // 按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
var day = nowDay - subDay;
var month = nowMonth - subMonth;
var year = nowYear - subYear; // 检查是否溢出
if(day<=0){ // 获得上月的天数
var lastMonth = nowMonth - 1;
var lastMonthOfYear = nowYear;
if(lastMonth<=0){
lastMonth =lastMonth + 12 //(lastMonth + 12) % 12;
lastMonthOfYear = lastMonthOfYear - 1;
}
day = day + new Date(lastMonthOfYear, lastMonth, 0).getDate();
month = month - 1;
}
if(month<=0){
month =month + 12 //(month + 12) % 12;
year--;
}
if(month<10){
month='0'+month
}
if(day<10){
day='0'+day
}
console.log(year+'-'+month+'-'+day);
}
// myfunction(1,10,20)
更多推荐
已为社区贡献1条内容
所有评论(0)