Moment.js는 날짜의 파싱, 유효성 검사, 조작 및 서식 지정을 위해 오랫동안 널리 사용되어 온 대표적인 JavaScript 라이브러리입니다.
날짜 파싱 및 생성
// 현재 시간 인스턴스 생성
const now = moment();
// 명시적 형식 문자열을 지정하여 파싱
const m = moment('2026-10-25', 'YYYY-MM-DD');
// Unix 타임스탬프 파싱 (초 단위 vs 밀리초 단위)
moment.unix(1730000000); // 초 단위 기준
moment(1730000000000); // 밀리초 단위 기준
// 유효성 검사
m.isValid(); // -> true
포맷팅 토큰
m.format(); // "2026-10-25T00:00:00+08:00" (// ISO 8601 표준 포맷)
m.format('dddd'); // "Sunday"
m.format('MMM Do YY'); // "Oct 25th 26"
m.fromNow(); // "// 상대 시간 표기 (예: 3 hours ago)"
m.calendar(); // "// 달력 표기 형식"
날짜 토큰 표
| 토큰 | 출력 범위 및 예시 | 설명 |
|---|---|---|
YYYY |
2026 |
4-digit year |
YY |
26 |
2-digit year |
MM |
01..12 |
2-digit month |
MMM |
Jan..Dec |
Short month name |
MMMM |
January..December |
Full month name |
DD |
01..31 |
2-digit day of month |
Do |
1st..31st |
Day of month with ordinal |
d |
0..6 |
Day of week (0 is Sunday) |
ddd |
Sun..Sat |
Short day of week |
dddd |
Sunday..Saturday |
Full day of week |
Q |
1..4 |
Quarter of the year |
시간 토큰 표
| 토큰 | 출력 범위 및 예시 | 설명 |
|---|---|---|
HH |
00..23 |
24-hour hour (2-digit) |
H |
0..23 |
24-hour hour (1-digit) |
hh |
01..12 |
12-hour hour (2-digit) |
mm |
00..59 |
Minute (2-digit) |
ss |
00..59 |
Second (2-digit) |
SSS |
000..999 |
Milliseconds (3-digit) |
A |
AM / PM |
Uppercase meridiem |
a |
am / pm |
Lowercase meridiem |
Z |
+08:00 |
Difference from UTC |
날짜 조작 및 연산
Moment 객체는 **가변(mutable)**입니다. 연산 작업은 인스턴스 자체를 직접 수정합니다:
// 덧셈 및 뺄셈 연산
moment().add(7, 'days');
moment().subtract(1, 'month');
// 특정 단위의 경계 시점으로 설정
moment().startOf('day'); // 오늘 00:00:00.000
moment().endOf('month'); // 해당 월 마지막 날 23:59:59.999
// 의도치 않은 변경을 방지하기 위한 복제
const original = moment();
const nextWeek = original.clone().add(7, 'days');
지역화 서식 프리셋
| 형식 | 출력 예시 |
|---|---|
LT |
8:30 PM |
LTS |
8:30:25 PM |
L |
10/25/2026 |
LL |
October 25, 2026 |
LLL |
October 25, 2026 8:30 PM |
LLLL |
Sunday, October 25, 2026 8:30 PM |
추천 최신 대체 라이브러리
Moment.js는 현재 유지 관리 모드입니다. 신규 프로젝트에서는 다음 최신 도구를 권장합니다:
- date-fns: 불변성을 유지하며 Tree-shaking을 지원하는 모듈형 유틸리티.
- Day.js: Moment와 거의 동일한 API를 제공하는 2KB 경량 라이브러리.
- Luxon: Moment 개발진이 표준 Intl API를 기반으로 개발한 최신 라이브러리.
- Native
Intl.DateTimeFormat: 외부 의존성 없이 최신 브라우저와 Node.js에 기본 내장된 API.