Moment.js를 이용해 나이계산하기

eastroots·2019년 9월 2일
0
private getAge = (birthDate: Date) => {
	const today = new Date();
	const age = today.getFullYear() - birthDate.getFullYear();
	const month = today.getMonth() - birthDate.getMonth();

	return month < 0 || (month === 0 && today.getDate() < birthDate.getDate()) ?
		age - 1 : age
}

기존 BankSalad Web 예적금 화면에서 사용되던 나이 계산 코드

private getAge = (birthDate: Date) => {
	return moment().diff(birthDate.format('YYYYMMDD'), 'years');
}
  • moment() : moment 날자 객체 (Default는 new Date()와 같다.)

    console.dir(moment());

  • .diff() : Difference의 약어, 특정날자와 비교하여 차이를 return한다. 리턴 값은 (years, months, weeks, days, hours, minutes, seconds)가 있다.

YYYYMMDD 로 써준 이유는?

// 현재날자 20181230, birthDate 20161231
console.log('YYYYMMDD', moment().diff(birthDate.format('YYYYMMDD'), 'years')); // 1
console.log('YYYY', moment().diff(birthDate.format('YYYY'), 'years')); //2

현재는 Moment.js 보다 Dayjs를 선호한다.
Dayjs의 경우 Moment.js 사용법이 매우 유사한데 파일 크기가 2kb여서 Moment.js 보다 30배 정도 가볍다

profile
동글동글 잘 굴러가는 웹을 만드는 실천형 개발자 동그래입니다🙋🏻‍♂️

0개의 댓글