회원가입 과정에서, 생년월일을 받아 만 14세 이상만 회원가입을 할 수 있도록 하려고 했다.
생년월일과 현재 날짜를 8자리 숫자로 바꿔서 두 숫자의 차가 140000 이상일 경우에만 회원가입을 진행하려고 했는데, 날짜 데이터를 8자리로 자동으로 바꿔주는 메서드가 없었고, 또 현재 날짜가 자꾸 표준시각으로 나타나는 문제가 발생했다.
아래는 8자리 숫자로 변경하는 방법과, 한국날짜로 나타내는 2가지 방법이다.
1. 시간을 8자리 숫자로 변경
정규식을 사용해서 8자리로 바꾸는 코드이다.
const today = new Date();
const date = Number(today.toISOString().substring(0, 10).replace(/-/g, ''));
console.log(date);
2. 한국 시각으로 변경
어차피 8자리만 나타내고 말거니까, new Date()를 생성하는 과정에서 미리 시차만큼 더해놓는 방법을 사용한다.
let offset = date.getTimezoneOffset() * 60000; //-32400000, ms단위라 60000곱해줌
let dateOffset = new Date(date.getTime() - offset);
console.log(dateOffset.toISOString());
3. moment.js 라이브러리 사용
npm install moment --save
yarn add moment
let momentDate = moment(date).format();
console.log(momentDate);
'TIL' 카테고리의 다른 글
TIL 240703 - Guard, 커스텀 데코레이터 사용 (0) | 2024.07.03 |
---|---|
TIL 240702 - 의존성 주입 문제 해결 (0) | 2024.07.02 |
TIL 240628 - Nest.js에서 Provider란? / useValue, useClass, useFactory 사용법 (0) | 2024.06.28 |
TIL 240627 - TypeORM 적용 (0) | 2024.06.27 |
TIL 240626 - 면접 예상질문 및 답변 모음 (공개모의면접 진행) (0) | 2024.06.26 |