Sky Archive

SPA/Vue.js

[Vue.js] moment.js 날짜계산

서울시장 2021. 9. 13. 11:14

날짜를 계산하는 라이브러리인 moment.js를 사용하면 내장된 함수를 이용하여 간단히 처리할 수 있다.

moment 라이브러리를 이용하면 손쉽게 날짜관련 기능들을 구현할 수 있다.

 

npm install --save moment

moment 라이브러리를 설치해준다.

 

"moment": "^2.29,1" 버전으로 진행했다.

 

스크립트에서 import moment from 'moment' 추가해준다.

 

1
2
3
moment().format() // 현재날짜
moment().format('YYYY-MM-DD HH:mm:SS) // format()함수로 날짜형식 지정
moment('20210930').format('YYYY-MM-DD') // 원하는 날짜를 지정 가능함
cs

 

add()/subtract() - 원하는 날짜를 지정했다면 해당 날짜에서 더하고 뺄수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
// 날짜 더하기
moment('20210930').add(1, 'days').format('YYYY-MM-DD') // 2021-10-01
moment('20210930').add(1, 'months').format('YYYY-MM-DD') // 2021-10-30
moment('20210930').add(1, 'years').format('YYYY-MM-DD') // 2022-09-30

// 날짜 빼기
moment('20210930').add(-1, 'days').format('YYYY-MM-DD') // 2021-09-29
moment('20210930').add(-1, 'months').format('YYYY-MM-DD') // 2021-08-30
moment('20210930').add(-1, 'years').format('YYYY-MM-DD') // 2020-09-30

moment('20210930').subtract(1, 'days').format('YYYY-MM-DD') // 2021-09-29
moment('20210930').subtract(1, 'months').format('YYYY-MM-DD') // 2021-08-30
moment('20210930').subtract(1, 'years').format('YYYY-MM-DD') // 2020-09-30
cs

 

isBefore()/isAfter() - 두 날짜간의 이전/이후인지 true/false로 확인 가능하다.

1
2
3
4
5
6
7
8
9
// isBefore()
moment('2021-09-13').isBefore('2021-09-12') // false
moment('2021-09-13').isBefore('2021-09-13') // false
moment('2021-09-13').isBefore('2021-09-14') // true

// isAfter()
moment('2021-09-13').isAfter('2021-09-12') // true
moment('2021-09-13').isAfter('2021-09-13') // false
moment('2021-09-13').isAfter('2021-09-14') // false
cs

 

isBetween() - 지정된 날짜가 지정된 날짜 범위내에 속하는지 판단할 수 있다.

1
2
3
4
// isBetween()
moment('2021-09-13').isBetween('2021-09-01', '2021-09-30') // true
moment('2021-09-13').isBetween('2021-09-13', '2021-09-30') // false
moment('2021-09-13').isBetween('2021-09-01', '2021-09-13') // false

cs

 

날짜 관련 라이브러리인 moment 사용법에 대해 알아보았다.

이밖에도 moment 라이브러리에 내장된 함수가 더 있다. (startOf()/endOf(), diff(), isSame() 등)

뷰로 화면단 개발시 해당 라이브러리 사용하게 되면 개발하는데 더 수월할 것이라 생각한다.

 

좀 더 많은 정보를 알고싶다면 아래 사이트에서 가이드를 확인하길 바란다.

https://momentjs.com/docs/