JavaScript
[javaScript] Moment.js / 날짜 및 시간을 조작하는 라이브러리
trueman
2022. 11. 27. 19:44
728x90
728x90
Moment.js
Moment.js는 JavaScript에서 날짜 및 시간을 조작하고 작업하는데 도움이 되는 JavaScript 라이브러리입니다. Moment.js는 JavaScript에서 날짜 및 시간과 관련된 라이브러리 중에서 가장 오래되었지만, 현재 다음 두 가지 이유로 개발이 중단되었습니다.
- Moment.js의 용량 문제
- 너무 오래되어 신규 기능 추가가 어려움
Moment.js 개발자 중 한 명은 Moment.js의 단점을 극복하기 위해 Luxon.js라는 라이브러를 만들었으며, 날짜 및 시간을 조작하는 라이브러리는 Luxon.js 외에도 Day.js, date-fns.js 등 여러 가지가 존재합니다.
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
import moment from 'moment';
const moment = require('moment');
moment(), format()
var now = moment();
now.format(); // 2021-10-09T00:01:13+09:00
format() 함수를 사용하여 원하는 형태를 입력하고 원하는 형태의 문자열로 변경할 수 있습니다.
var now = moment();
now.format(); // 2022-11-27 T19:36:20+09:00
now.format("YY-MM-DD"); // 22-11-27
now.format("DD/MM/YY"); // 27/11/22
now.format("YYYY.MM.DD HH:mm:ss"); // 2022.11.27 19:37:39
add() : 날짜 및 시간 더하기
moment 객체를 조작하는 다양한 옵션들이 있다. 예를 들면, days, months, years 등을 더하거나 뺄 수 있다. add()와 subtract() 메소드를 이용하면 된다.
// 2023-11-27 T19:39:36+09:00
moment().add(1, "years").format();
moment().add(1, "y").format();
// 2022-12-27 T19:39:36+09:00
moment().add(1, "months").format();
moment().add(1, "M").format();
// 2022-12-04 T19:42:31+09:00
moment().add(1, "weeks").format();
moment().add(1, "w").format();
// 2022-11-28 T19:42:31+09:00
moment().add(1, "days").format();
moment().add(1, "d").format();
// 2022-11-27 T20:42:31+09:00
moment().add(1, "hours").format();
moment().add(1, "h").format();
// 2022-11-27 T19:43:31+09:00
moment().add(1, "minutes").format();
moment().add(1, "m").format();
// 2022-11-27 T19:42:32+09:00
moment().add(1, "seconds").format();
moment().add(1, "s").format();
// 2022-11-27 T19:42:32+09:00
moment().add(1000, "milliseconds").format();
moment().add(1000, "ms").format();
subtract() : 날짜 및 시간 빼기
// 2021-11-27 T19:50:07+09:00
moment().subtract(1, "years").format();
moment().subtract(1, "y").format();
// 2022-10-27 T19:50:07+09:00
moment().subtract(1, "months").format();
moment().subtract(1, "M").format();
// 2022-11-20 T19:50:07+09:00
moment().subtract(1, "weeks").format();
moment().subtract(1, "w").format();
diff() : 날짜 및 시간 차이
var date1 = moment();
var date2 = moment("2022-10-27");
// 2022-11-27 T19:52:44+09:00
date1.format();
// 2022-10-27 T00:00:00+09:00
date2.format();
date1.diff(date2); // 2749964746
date1.diff(date2, "years"); // 0
date1.diff(date2, "months"); // 1
date1.diff(date2, "weeks"); // 4
fromNow() : 현재 날짜 및 시간을 기준으로 상대적인 시간
// 2022-11-27T19:59:39+09:00
moment().format();
// a few seconds ago
moment().fromNow();
moment().startOf("day").fromNow(); // 20 hours ago
moment().endOf("day").fromNow(); // in 4 hours
moment("2021-10-27").fromNow(); // a year ago
isBetween() : 날짜가 지정한 시간 단위에서 특정 날짜들 사이에 있는지 여부 확인
var date = moment("2022-11-27");
date.isBetween("2022-11-26", "2022-11-27"); // false
date.isBetween("2022-11-27", "2022-11-28"); // true
date.isBetween("2021-11-26", "2022-11-27", "day"); // false
date.isBetween("2022-11-26", "2022-11-28", "day"); // true
date.isBetween("2022-10-27", "2022-12-27", "month"); // true
date.isBetween("2021-11-27", "2022-12-27", "year"); // false
date.isBetween("2021-11-27", "2023-11-27", "year"); // true
date.isBetween("2022-11-27", "2022-11-28", undefined, "()"); // false
date.isBetween("2022-11-27", "2022-11-28", undefined, "[)"); // true
date.isBetween("2022-11-27", "2022-11-28", undefined, "(]"); // false
date.isBetween("2022-11-27", "2022-11-28", undefined, "[]"); // true
isBetween() 함수를 사용하여 날짜 객체가 특정 날짜들 사이에 있는지 확인할 수 있습니다.
isBetween() 함수에서 첫번째와 두번째에 날짜를 넣는 부분에 undefined를 입력하면 오늘 날짜로 대체됩니다.
세번째 인수에는 시간 단위를 지정할 수 있습니다.
네번째 인수에서 '('와 ')'는 입력한 시작날짜와 마지막 날짜를 포함하지 않고 비교하도록 하고, '['와 ']'는 입력한 시작날짜와 마지막 날짜를 포함하여 비교하도록 설정합니다.
728x90
728x90