본문 바로가기
개발정리 (nodeJS)

[nodeJS] Moment로 날짜, 시간 포맷 바꾸기

by 할리갈리0 2023. 6. 14.

1. Moment

JavaScript에서 날짜와 시간을 다루기 위한 라이브러리

다음주 목요일, 1달 전과 같은 상대 시간 표시 가능

npm i moment

 

2. 날짜와 시간 문자열 포맷 변경하기

const moment = require('moment');
const date = moment('2023-06-14T09:30:21Z');
console.log(date.format('YYYY-MM-DD HH:mm:ss')); // '2023-06-14 09:30:21'

 

3. 날짜 더하기, 빼기

const moment = require('moment');

const today = moment();
const tomorrow = today.clone().add(1, 'days');
console.log(tomorrow.format('YYYY-MM-DD')); // 내일 날짜 출력

const nextMonth = today.clone().add(1, 'months');
console.log(nextMonth.format('YYYY-MM-DD')); // 다음 달 날짜 출력

const yesterday = today.clone().subtract(1, 'days');
console.log(yesterday.format('YYYY-MM-DD')); // 어제 날짜 출력

const lastMonth = today.clone().subtract(1, 'months');
console.log(lastMonth.format('YYYY-MM-DD')); // 지난 달 날짜 출력

날짜를 더하거나 빼는 과정에서 원래 날짜 값을 유지해야 할 경우
기존 객체를 유지하면서 작업하기 위해
clone() 메서드를 사용해서 기존 날짜를 변경하지 않고
새로운 Moment 객체를 만들어 사용 가능

 

4. 날짜 간의 차이 비교

const moment = require('moment');

const date1 = moment('2023-06-05');
const date2 = moment('2023-06-12');

if (date1.isBefore(date2)) {
  console.log('date1이 date2보다 빠릅니다.');
} else if (date1.isAfter(date2)) {
  console.log('date1이 date2보다 늦습니다.');
} else {
  console.log('date1과 date2가 동일합니다.');
}

const daysDifference = date2.diff(date1, 'days');
console.log(`두 날짜의 차이는 ${daysDifference}일입니다.`);

 

5. 지역별 날짜 출력

const moment = require('moment');

const currentDateTime = moment().locale('ko');
console.log(currentDateTime.format('LLLL')); // 한국어로 현재 날짜와 시간 출력

 

6. 타이머

const moment = require('moment');
const startTime = moment();

setTimeout(() => {
  const endTime = moment();
  const diff = endTime.diff(startTime); // 밀리초 단위 차이
  const duration = moment.duration(diff);
  console.log(`경과 시간: ${duration.seconds()} 초`);
}, 5000); // 5초 후에 실행될 함수

 

 

자바의 java.time 패키지와 같은 기능을 제공하는 Moment.js를 사용하면 날짜 및 시간을 관리하는 것이 훨씬 쉬워집니다.

반응형