Moment.js 라이브러리
들어가며
- 자바스크립트(JavaScript)에서 날짜와 시간을 처리하기 위해 많이 사용되는 Moment.js 라이브러리에 대해 정리해본다.

moment.js
개념
- 자바스크립트에서 날짜와 시간을 처리하기 위해 사용되는 인기 있는 라이브러리
- 날짜 및 시간 계산, 형식화, 파싱, 시간대 변환, 상대적인 시간 표현 등을 쉽게 처리할 수 있도록 도와준다.
- 자바스크립트의 기본
Date
객체와 비교하여 훨씬 더 직관적이고 강력한 기능을 제공한다. - 2020년부터 Moment.js는 유지보수 전용 모드로 전환되었고, 새로운 프로젝트에서는 Day.js나 Luxon, Date-fns과 같은 다른 라이브러리를 대신 사용하도록 권장되고 있다. (하지만 여전히 많은 프로젝트에서 사용되고 있다.)
- Day.js
- Moment.js와 매우 유사하지만 가볍고 빠른 라이브러리
- Moment.js와 완벽하게 호환된다.
- Luxon
- 보다 강력한 날짜와 시간 처리 기능 제공
Intl
기반- Internationalization API
- 자바스크립트에서 날짜, 시간, 숫자, 통화 등의 데이터를 다양한 언어와 지역에 맞게 국제화하고 지역화할 수 있도록 지원하는 내장 API
- Date-fns
- 함수형 라이브러리
- 필요한 기능만 임포트하여 사용 가능
- Day.js
Moment.js | Home
Format Dates moment().format('MMMM Do YYYY, h:mm:ss a'); moment().format('dddd'); moment().format("MMM Do YY"); moment().format('YYYY [escaped] YYYY'); moment().format(); Relative Time moment("20111031", "YYYYMMDD").fromNow(); moment("20120620", "YYYYMMDD"
momentjs.com
주요 기능
날짜 생성 및 현재 시간 표시
// 현재 시간 const now = moment(); console.log(now.format()); // ISO 8601 형식 // 특정 날짜 const date = moment('2024-11-14'); console.log(date.format('YYYY-MM-DD')); // 2024-11-14 // 날짜와 시간 (시간 포함) const datetime = moment('2024-11-14 15:30:00'); console.log(datetime.format('YYYY-MM-DD HH:mm:ss')); // 2024-11-14 15:30:00
날짜 포맷팅
const date = moment('2024-11-14'); console.log(date.format('YYYY-MM-DD')); // 2024-11-14 console.log(date.format('MMMM Do YYYY')); // November 14th 2024 console.log(date.format('dddd, MMMM Do YYYY')); // Thursday, November 14th 2024
날짜 파싱
const date = moment('11/14/2024', 'MM/DD/YYYY'); console.log(date.format()); // 2024-11-14T00:00:00-05:00
날짜 계산
const now = moment(); // 5일 후 console.log(now.add(5, 'days').format('YYYY-MM-DD')); // 2024-11-19 // 3개월 전 console.log(now.subtract(3, 'months').format('YYYY-MM-DD')); // 2024-08-19
날짜 비교
const date1 = moment('2024-11-14'); const date2 = moment('2024-11-15'); console.log(date1.isBefore(date2)); // true console.log(date1.isAfter(date2)); // false console.log(date1.isSame(date2)); // false
상대적인 시간 표시
- '5분 전', '2일 후' 등 상대적인 시간 표현을 지원한다.
const now = moment(); const past = moment().subtract(10, 'days'); const future = moment().add(2, 'days'); console.log(now.from(past)); // 10 days ago console.log(now.to(future)); // in 2 days console.log(now.fromNow()); // a few seconds ago
시간대 지원
moment-timezone
이라는 추가 플러그인을 통해 시간대 변환을 지원한다.
const moment = require('moment-timezone'); const newYorkTime = moment.tz("2024-11-14 12:00", "America/New_York"); console.log(newYorkTime.format()); // 2024-11-14T12:00:00-05:00 const londonTime = newYorkTime.clone().tz("Europe/London"); console.log(londonTime.format()); // 2024-11-14T17:00:00+00:00
유효성 검사
- 날짜가 유효한지 확인할 수 있는 메서드를 제공한다.
const validDate = moment('2024-11-14'); console.log(validDate.isValid()); // true const invalidDate = moment('2024-14-11'); console.log(invalidDate.isValid()); // false
참고 사이트
Moment.js | Docs
moment.relativeTimeThreshold(unit); // getter moment.relativeTimeThreshold(unit, limit); // setter duration.humanize has thresholds which define when a unit is considered a minute, an hour and so on. For example, by default more than 45 seconds is consider
momentjs.com
moment
Parse, validate, manipulate, and display dates. Latest version: 2.30.1, last published: a year ago. Start using moment in your project by running n±imoment. There are 71751 other projects in the npm registry using moment.
www.npmjs.com
'Programming > JavaScript' 카테고리의 다른 글
[JavaScript] EmailJS 라이브러리 (0) | 2024.11.26 |
---|---|
[JavaScript] FusionCharts 라이브러리 (1) | 2024.11.18 |
[JavaScript] Faker.js 라이브러리 (0) | 2024.10.30 |
[JavaScript] fetch() API와 Axios의 에러 처리 방법 비교 (0) | 2024.08.30 |
[JavaScript] 전개 연산자 (Spread Operator, ...) (0) | 2024.08.27 |
[JavaScript] for 문 정리 (for, for...in, for...of, forEach, for await...of) (0) | 2024.08.25 |
[JavaScript] JSON(JavaScript Object Notation) 다루기 (0) | 2024.07.05 |
[JavaScript] Intl.NumberFormat 객체 (0) | 2024.06.28 |