Moment.js는 자바스크립트에서 dates를 다루기 깔끔하고 간결한 API이다. 이를 사용하여 날짜와 시간을 분석, 검증, 조작 표시할 수 있다.
Moment.js 홈페이지에 들어가면 아래 사진과 같이 친절히 나와있다.
Node와 함께 사용하려면 아래 명령어로 모듈을 설치하면 된다.
npm install moment
설치 후 require()
하면 애플리케이션에서 간편하게 사용할 수 있다.
const moment = require('moment');
const today = momnet();
console.log(today.format()); // 2022-04-06T15:45:51+01:00
브라우저에서 실행하려면 <script>
태그 내에서 사용하면 된다.
Moment.js는 모든 date와 time을 분석하고 조작하는 기능을 포함하는 전역 moment 객체를 만든다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Moment.js</title>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script>
// You have a 'moment' global here
const today = moment();
console.log(today.format());
</script>
</body>
</html>
더 자세한 내용은 홈페이지에서 볼 수 있다.
- overflow: overflow가 발생하였을 때 (13월, 34일 입력 등)
- invaildMonth: month가 유효하지 않을 때 (Maaarch 등)
- empty: 입력된 date가 분석 가능한 어떤 것도 포함되지 않을 때
- nullInput : 입력된 date가 null 일 때
const now = new Date();
dateObj.getTime();
dateObj.getMonth();
moment().add(3, 'days'); // 현재 날짜에 3일을 더한다.
moment().add(3, 'months'); // 현재 날짜에 3달을 더한다.
moment().add(3, 'years'); // 현재 날짜에 3년을 더한다.
moment().subtract(4, 'days'); // 현재 날짜에 3일을 뺀다.
moment().subtract(4, 'months'); // 현재 날짜에 3달을 뺀다.
moment().subtract(4, 'years'); // 현재 날짜에 3년을 뺀다.
각 예시들을 moment 객체로 반환한다. 원하는 형식으로 지정할 수 있다.
const today = moment();
const nextWeek = today.add(7, 'days');
console.log(nextWeek.format('dddd Do MMMM, YYYY'));
// Thursday 13th April, 2022
현재 시점으로부터 시간 차이를 계산하기 위해. fromNow()메서드
를 사용한다.
moment('2022.04.01', 'YYYY.MM.DD').fromNow();
// 6 days ago
임의의 두 date를 비교하는 메서드는 from()
이다.
const dateA = moment('01-01-1922', 'DD-MM-YYYY');
const dateB = moment('01-01-2022', 'DD-MM-YYYY');
console.log(dateA.from(dateB)); // 100 years ago
diff() 메서드는 두 날짜 차이를 계산한다. 기본적으로 밀리초 단위로 계산되지만 일, 월, 년 등의 단위로도 가능하다.
const dateB = moment('2022-05-06');
const dateC = moment('2022-04-06');
console.log(`Difference is ${dateB.diff(dateC)} milliseconds`);
// Difference is 2678400000 milliseconds
console.log(`Difference is ${dateB.diff(dateC, 'days')} day(s)`);
// Difference is 31 day(s)
console.log(`Difference is ${dateB.diff(dateC, 'weeks')} week(s)`);
// Difference is 4 week(s)
console.log(`Difference is ${dateB.diff(dateC, 'months')} month(s)`);
// Difference is 1 month(s)