본문 바로가기
TIL

TIL 240701 - javascript/typescript에서 날짜 한국표준시각으로 변경

by lemonpie611 2024. 7. 1.

회원가입 과정에서, 생년월일을 받아 만 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);