//每个月按30天计算所以误差有些大
// 根据时间戳计算宝宝年龄
getBabyAge:function(time){
let birthday = time;
let now = new Date().getTime();
let hours = (now-birthday)/3600000;
let year = Math.floor(hours / (24 * 30 * 12));
hours = hours % (24 * 30 * 12);
let months = Math.floor(hours / (24 * 30 ));
hours = hours % (24 * 30 );
let days = Math.floor(hours / (24));
let age = year + '岁' + months + '个月' + days +'天';
// console.log('已经出生:'+ age);
return age;
},
//误差能小些在1天左右
// 根据时间戳计算宝宝年龄
getBabyAge: function (time) {
let now = new Date().getTime();
let time2 = now - time;
let date = new Date(time2);
let year = date.getFullYear() - 1970;
let months = date.getMonth();
let days = date.getDate()-1;
let age = year + '岁' + months + '个月' + days + '天';
// console.log('已经出生:'+ age);
return age;
},
将当前日期的时间戳减去出生日期的时间戳再转化为日期格式。减去1970年1月1日日期为出生年月日。
//基本没有误差
getBabyAge2(time) {
let nowTime = new Date();
let birthTime = new Date(time);
// console.log("time",nowTime,birthTime);
// 当前年月日
let curYear = nowTime.getFullYear();
let curMonth = nowTime.getMonth();
let curDay = nowTime.getDate();
// 出生年月日
let birYear = birthTime.getFullYear();
let birMonth = birthTime.getMonth();
let birDay = birthTime.getDate();
// 年月日之差
let year = curYear - birYear;
let months = curMonth - birMonth;
let day = curDay - birDay;
// console.log("test",year,months,day);
//(1)将出生日期的时间戳都转化为Date,分别获取当前时间和出生时间的年、月、日之差
//(2)若月份相差为负说明不满这一年,年份减1,月份借了一年变为12+当前月份。故月份之差变为12+当前月份-出生月份。
// 若月份相差为0并且天相差为负,说明也不满一年,计算同理。
//(3)若天相差为负,说明不满这个月,月份减1,天数借了一个月,故天数之差为上个月的天数+当前天-出生天
if (months < 0 || months == 0 && day < 0) {
year -= 1;
months = 12 + curMonth - birMonth;
}
if (day < 0) {
months -= 1;
let date = this.getDaysInMonth(curYear, curMonth);
// console.log("date",date);
day = date + curDay - birDay;
}
age = year + '岁' + months + '个月' + day + '天';
// console.log("age",age);
return age;
},
// 获取某年某月有多少天
getDaysInMonth(year,month){
month = parseInt(month,10);
var temp = new Date(year,month,'0');
return temp.getDate();
},
(1)将出生日期的时间戳都转化为Date,分别获取当前时间和出生时间的年、月、日之差
(2)若月份相差为负说明不满这一年,年份减1,月份借了一年变为12+当前月份。故月份之差变为12+当前月份-出生月份。
若月份相差为0并且天相差为负,说明也不满一年,计算同理。
(3)若天相差为负,说明不满这个月,月份减1,天数借了一个月,故天数之差为上个月的天数+当前天-出生天