📢 Moment.js는 JavaScript에서 날짜와 시간을 쉽게 다룰 수 있도록 도와주는 라이브러리입니다.
가장 많이 사용되는 주요 메서드 5개를 소개하고, 각각의 정의와 예제를 정리해보겠습니다.
diff()
두 날짜 간의 차이를 계산하는 메서드로, 연도, 월, 일, 시간 등의 단위로 차이를 구할 수 있습니다.
diff(moment|String|Number|Date|Array, String, Boolean)
: 비교할 날짜와 단위를 설정하고, Boolean 값(true)을 추가하면 소수점까지 반환할 수 있습니다.const moment = require('moment');
const date1 = moment('2025-03-07'); // 종료날짜
const date2 = moment('2025-02-25'); // 시작날짜
console.log(date1.diff(date2, 'days')); // 10 (일 단위 차이)
console.log(date1.diff(date2, 'weeks')); // 1 (주 단위 차이)
console.log(date1.diff(date2, 'months', true)); // 0.322 (소수점 포함)
add()
/ subtract()
add()
: 특정 단위의 시간을 더할 때 사용합니다.subtract()
: 특정 단위의 시간을 뺄 때 사용합니다.add()
와 subtract()
는 음수를 사용할 수도 있으며, add(-n, '단위')
는 subtract(n, '단위')
와 동일한 효과를 가집니다.add(Number, String)
: 숫자와 단위를 입력하여 시간을 더합니다.subtract(Number, String)
: 숫자와 단위를 입력하여 시간을 뺍니다.const date = moment('2025-03-07');
console.log(date.add(5, 'days').format('YYYY-MM-DD')); // 2025-03-12
console.log(date.subtract(2, 'months').format('YYYY-MM-DD')); // 2025-01-07
console.log(date.add(-3, 'days').format('YYYY-MM-DD')); // 2025-03-04 (subtract(3, 'days')와 동일)
format()
날짜를 특정 형식의 문자열로 변환하는 메서드입니다.
format(String)
: 원하는 포맷의 문자열을 입력하여 날짜를 변환합니다.const date = moment();
console.log(date.format('YYYY-MM-DD HH:mm:ss')); // 2025-03-07 15:30:00
console.log(date.format('MMMM Do YYYY, h:mm:ss a')); // March 7th 2025, 3:30:00 pm
isBefore()
/ isAfter()
isBefore()
: 특정 날짜보다 이전인지 확인하는 메서드isAfter()
: 특정 날짜보다 이후인지 확인하는 메서드isBefore(moment|String|Number|Date|Array, String)
: 비교할 날짜와 단위를 설정합니다.isAfter(moment|String|Number|Date|Array, String)
: 비교할 날짜와 단위를 설정합니다.const date1 = moment('2025-03-07');
const date2 = moment('2025-02-25');
console.log(date1.isAfter(date2)); // true
console.log(date2.isBefore(date1)); // true
startOf()
/ endOf()
startOf()
: 특정 단위의 시작 시점을 반환하는 메서드endOf()
: 특정 단위의 마지막 시점을 반환하는 메서드startOf(String)
: 설정한 단위의 시작 시간을 반환합니다.endOf(String)
: 설정한 단위의 마지막 시간을 반환합니다.const date = moment('2025-03-07');
console.log(date.startOf('month').format('YYYY-MM-DD HH:mm:ss')); // 2025-03-01 00:00:00
console.log(date.endOf('month').format('YYYY-MM-DD HH:mm:ss')); // 2025-03-31 23:59:59
Moment.js는 날짜를 다루는 다양한 기능을 제공하며, 특히 diff()
, add()/subtract()
, format()
, isBefore()/isAfter()
, startOf()/endOf()
등의 메서드는 자주 사용됩니다. 프로젝트에서 날짜 계산이 필요할 때 유용하게 활용해 보세요!