0
我制作了一个反应组件,其中包含出生日期输入和年龄输入,以年,月和日作为输入。获取出生日期的逻辑从年龄表示出生日期月和日
所以我想要得到人的出生日期,如果年龄键入。
例如, 年龄是年= 24个月= 1天= 15 因此诞生之日起应18-04-1993 ..
这是我到目前为止已经做了..但逻辑是打破如果(现在< = ageDay)块..
const now = new Date();
const nowDay = now.getDate();
const nowMonth = now.getMonth() + 1;
const nowYear = now.getFullYear();
const ageYear = ReactDOM.findDOMNode(this.yearInput).value;
const ageMonth = ReactDOM.findDOMNode(this.monthInput).value;
const ageDay = ReactDOM.findDOMNode(this.daysInput).value;
let dobYear = nowYear - ageYear;
let dobMonth = nowMonth - ageMonth;
let dobDay = nowDay - ageDay;
if (dobMonth <= 0) {
dobYear --;
dobMonth = (12 + dobMonth);
}
if (ageMonth > 12) {
dobYear = dobYear + Math.floor(dobMonth/12);
console.log('ASIJASOIJAS', dobYear); // eslint-disable-line
dobMonth = ageMonth % 12;
}
if (nowDay <= ageDay) {
dobMonth -= Math.floor(ageDay/30);
dobDay = ageDay % 30;
if (dobMonth < 0) {
dobYear = dobYear - (dobMonth % 12) - 1;
dobMonth = 12 - (dobMonth % 12);
dobDay ++;
}
}
const age = {
days: ageDay,
months: ageMonth,
years: ageYear,
};
const month = dobMonth < 10 ? `0${dobMonth}` : dobMonth;
const day = dobDay < 10 ? `0${dobDay}` : dobDay;
dateOfBirth = `${dobYear}-${month}-${day}`;
在此先感谢。
看,有时人们不喜欢图书馆,它不是一个答案你的问题(因此评论),但检查[momentjs](http://momentjs.com/),这是一个很棒的图书馆,处理各种时间问题,包括你现在拥有的。强烈推荐! –
同意Brett East。你不需要重新发明轮子。 Moment JS完美地解决了这些问题。 – Nisarg
@布雷特东..谢谢你的建议..我会检查出来..我忽略它的原因是因为Momentjs是大型图书馆,我的小应用程序只需要这个计算完成。所以包括 那整个图书馆只是一小部分是不必要的我觉得..猜我错了.. – JiN