본문 바로가기
Programming/JavaScript

[JavaScript] Moment.js 사용법 (현재 날짜, 날짜 포맷, 날짜 비교)

by devpine 2023. 6. 23.
반응형

💡Moment.js란?

Moment.js는 JavaScript에서 가장 많이 사용되어 온 날짜 라이브러리입니다.
개발할 때 현재 날짜를 가져오거나, 특정 날짜의 년/월/일만을 가져오거나, 내가 원하는 날짜 포맷으로 형식을 변경해 주거나, 특정 날짜와 비교해 주는 등 날짜 관련해서 다양한 처리가 필요할 때 사용합니다.

 

 ⚠️ 참고사항

더 이상 업데이트가 없어 deprecated 되었고 레거시 프로젝트가 되었지만, 아직 실무에 사용하는 곳이 많고 다른 라이브러리에 의존성을 가진 경우가 많으며 정통 날짜 라이브러리로 많이 사용되고 있습니다.
제가 실무에서 개발하는 프로젝트에서도 Moment.js를 사용하고 있습니다. 그래서 오늘은 자주 사용하는 Moment.js의 사용법을 정리하고자 합니다.
 

🖥️ Moment.js 설치 & 사용 준비

터미널에 아래 npm/yarn 중 하나의 명령어를 입력해서 설치해줍니다.

npm install moment --save   # npm
yarn add moment             # Yarn

 
그리고 날짜 처리가 필요한 곳에서 import 또는 require 해서 라이브러리를 가져와서 사용할 수 있도록 해줍니다.

import moment from "moment";
// or
const moment = require("moment");

 
 

⏰ Moment.js 사용 방법

Moment.js로 자주 사용하는 메서드는 다음과 같습니다.
1. moment() : 현재 날짜와 시간 

const today = moment();

 
2. moment(지정 날짜) : 지정 날짜와 시간 

const date = moment("2023-06-23");

 
3. format() : 날짜 형식 지정

const date = moment("2023-06-23");

date.format("YYYY/MM/DD"); // 포맷의 형식은 더 다양함

 
4. add() : 날짜나 시간 더하기

const date = moment("2023-06-23");

date.add(1, "years"); // 그 외 months, weeks, days, hours, minutes, seconds, milliseconds 가능

 
5. subtract() : 날짜나 시간 빼기

const date = moment("2023-06-23");

date.subtract(1, "years"); // 그 외 months, weeks, days, hours, minutes, seconds, milliseconds 가능

 
6. diff() : 날짜나 시간 차이

const today = moment().format();
const date = moment("2023-06-22").format();

today.diff(date);
today.diff(date, "years"); // 그 외 months, weeks, days, hours, minutes, seconds, milliseconds 가능

 
7. fromNow() : 현재 날짜와의 차이

moment().fromNow();
moment("2023-06-22").fromNow();

 
8. from() : 지정 날짜와의 차이

moment().from(moment());
moment("2023-06-22").from("2023-06-20");

 
9. isSame() : 날짜가 같은지 여부

const date = moment("2023-06-22");

date.isSame("2023-06-20");
date.isSame("2023-06-22", "year"); // 그 외 month, day 가능

 
10. isBefore(), isSameOrBefore() : 날짜가 같거나 이전인지 여부

const date = moment("2023-06-22");

date.isBefore("2023-06-23");
date.isSameOrBefore("2023-06-22", "year"); // 그 외 month, day 가능

 
11. isAfter(), isSameOrAfter() : 날짜가 같거나 이전인지 여부

const date = moment("2023-06-22");

date.isAfter("2023-06-20");
date.isAfterOrBefore("2023-06-02", "year"); // 그 외 month, day 가능

 
12. isBetween() : 특정 기간 사이에 있는지 여부

const date = moment("2023-06-22");

date.isBetween("2023-06-20", "2023-06-23");

 

 

 📎 참고링크

Moment.js deprecated 관련 링크: https://momentjs.com/docs/#/-project-status/
 

반응형

댓글