자바스크립트에서 날짜 관련 작업을 moment library를 이용하면 더 편하게 사용 가능하다.
두 날짜 사이 간격은 .diff 를 통해 쉽게 구할 수 있다.
console.log(moment('2020-01-04').diff(moment('2020-01-01'),'days'));
//3
console.log(moment('2019-09-01').diff(moment('2019-05-01'),'months'));
//4
console.log(moment('2020-02-04').diff(moment('2019-02-04'),'years'));
//1
diff의 인자 중 두번째 인자에 차이 단위를 'days'
, 'months'
, 'years'
로 설정하여 각각 일, 월, 연 단위로 구할 수 있다.
특정 날짜로부터의 하루, 한달, 일년 전/후 날짜를 알고싶을 때
.add() 와 .subtract() 를 통해 구할 수 있다.
마찬가지로 단위는 각각 'd'
, 'M'
, 'y'
이다.
console.log(moment('2020-02-01').add("1","y").format("YYYY-MM-DD"));
// 2021-02-01
console.log(moment('2020-02-01').add("1","M").format("YYYY-MM-DD"));
// 2020-03-01
console.log(moment('2020-02-01').add("1","d").format("YYYY-MM-DD"));
// 2020-02-02
console.log(moment('2020-02-01').subtract("1","y").format("YYYY-MM-DD"));
// 2019-02-01
console.log(moment('2020-02-01').subtract("1","M").format("YYYY-MM-DD"));
// 2020-01-01
console.log(moment('2020-02-01').subtract("1","d").format("YYYY-MM-DD"));
// 2020-01-31
음수를 add해주면 subtract 기능까지 할 수 있다.
console.log(moment('2020-02-01').add("-1","M").format("YYYY-MM-DD"));
// 2020-01-01
console.log(moment('2020-02-01').subtract("1","M").format("YYYY-MM-DD"));
// 2020-01-01
위의 두 코드는 같은 값을 나타낸다.