$ npm install moment
moment()
라이브러리에서는 해당 시간에 맞게 원하는 형식으로 시간을 반환에 줍니다.
해당 토큰들은 대 소문자
를 구분합니다.
moment().format()
// result : 2019-12-11T11:22:22+09:00
// 현재시간을 알려준다.
/* Year */
moment().format('YYYY YY Y')
// result : 2019 19 2019
/* Month */
moment().format('MMMM MMM MM M')
// result : December Dec 12 12
moment().format('Q')
// result : 4
/* Day */
moment().format('DDDD DDD DD D Do')
// result : 345 345 11 11 11th
Year
Month
Day
/* Hours */
moment().format('HH H')
// result : 13 13
moment().format('hh h')
// result : 01 1
moment().format('kk k')
// result : 13 13
moment().format('a A')
// result : pm PM
moment().format('ZZ Z')
// result : +0900 +09:00
/* Minutes */
moment().format('mm m')
// result : 02 2
/* Seconds */
moment().format('ss s')
// result : 46 46
moment().format('SSS SS S')
// result : 152 15 1
Hours
Minutes
Seconds
/* Year */
momnet().format('gggg gg')
// result : 2019 19
/* Week */
momnet().format('ww w')
// result : 50 50
/* Day */
momnet().format('e')
// result : 3
momnet().format('dddd ddd dd')
// Wednesday Wed We
Year
Week
Day
ISO 표기법은 국제 표준화기구에서 정의한 날이다.
/* Year */
moment().format('GGGG GG')
// result : 2019 19
/* Week */
moment().format('WW W')
// result : 50 50
/* Day */
moment().format('E')
// result : 3
Year
Week
Day
로케일 형식은 해당 시간을 문자열로 형식으로 반환합니다.
moment().foramt('L')
// result : 12/11/2019
moment().foramt('LL')
// result : December 11, 2019
moment().foramt('LLL')
// result : December 11, 2019 1:32 PM
moment().foramt('LLLL')
// result : Wednesday, December 11, 2019 1:32 PM
moment().foramt('LT')
// result : 1:32 PM
moment().foramt('LTS')
// result : 1:32:11 PM
원하는 포맷을 지정하여 출력하는 방법이다.
moment().format('YYYY년 MM월 DD일 HH시mm분ss초')
// result : 2019년 12월 11일 13시 42분 36초
moment().format('YYYY-MM-DD HH:mm:ss')
// result : 2019-12-11 13:42:36
시간 데이터를 삽입하여 원하는 포맷으로도 출력이 가능하다.
현재 구동되는 서버 시간은 KST
를 하고있다.
new Date()
// result : 2019-12-11T04:48:06.906Z
moment(new Date()).format()
// result : 2019-12-11T13:48:06+09:00
이 처럼 현재 new Date는 04시 표기된다.
하지만 moment
를 사용하면 UTC 표기법에 의거 +09:00를 하여 13시로 표기된다.
추가적으로 원하는 일자를 지정해보겠다.
new Date(2019, 12, 25)
// result : 2020-01-24T15:00:00.000Z
moment(new Date(2019, 12, 25)).format()
// result : 2020-01-25T00:00:00+09:00
moment(20191225).format()
// result : 1970-01-01T14:36:31+09:00
moment('20191225').format()
// result : 2019-12-25T00:00:00+09:00
결과 값을 보시다시피 Date객체로 지정한 날짜는 month를 -1 값을 지정해줘야합니다.
그리고 number 형식으로 지정한 포맷은 인식하지 못해 이상한 데이터를 표기합니다.
포맷 형식은 string
형식으로 지정해줘야 알맞은 시간을 보여줄 수 있습니다.
시간 데이터를 구할 때 단위별로 원하는 시간을 가져오고 싶을때가 있다.
moment()
에서는 단위 별로 출력하는 기능을 제공한다.
moment().year()
// result : 2019
moment().month() + 1
// result : 12
// 0..11 값을 표기하므로 +1을 해준다
moment().date()
// result : 11
moment().day()
// 3
// 0 : 일요일 .. 6 : 토요일
moment().hours()
// result : 13
moment().minutes()
// result : 53
moment().seconds()
// result : 22
moment().milliseconds()
// result : 412
순서대로 년, 월, 일, 요일, 시, 분, 초, 밀리초
를 가져온다.
moment().add()
를 사용하면 쉽게 날짜 및 시간을 가져올수있다.
/* 날짜 */
moment().add(1, 'y').format('YYYY-M-D')
// result : 1 시간 뒤
moment().add(1, 'Q').format('YYYY-M-D')
// result : 1 분기 뒤
moment().add(1, 'M').format('YYYY-M-D')
// result : 한달 뒤
moment().add(1, 'w').format('YYYY-M-D')
// result : 1주 뒤
moment().add(1, 'd').format('YYYY-M-D')
// result : 1일 뒤
/* 시간 */
moment().add(1, 'h').format('HH:mm:ss')
// result : 1 시간 뒤
moment().add(1, 'm').format('HH:mm:ss')
// reuslt : 1 분 뒤
moment().add(1, 's').format('HH:mm:ss')
// result : 1 초 뒤
moment().add(1, 'ms').format('HH:mm:ss:ms')
// result : 1 밀리초 뒤
예제 처럼 add(value, key)
를 지정해주면 해당 value 만큼 key에 맞는
시간을 더하거나 빼값을 반환해준다.
key 값은 다음과 같이 정의한다.
Key | Shorthand |
---|---|
years | y |
quarters | Q |
months | M |
weeks | w |
days | d |
hours | h |
minutes | m |
seconds | s |
milliseconds | ms |
만약 전 시간을 알고싶으면 add(-1, key)
이 처럼 value를 음수로 지정해주면된다.
moment().diff()
를 사용하면 특정 날짜로 부터 얼마나 지났는지 확인이 가능하다.
moment('20191225').diff(moment(), 'years')
// result : 0
moment('20191225').diff(moment(), 'months')
// result : 0
moment('20191225').diff(moment(), 'days')
// result : 13
moment('20191225').diff(moment(), 'hours')
// result : 321
moment('20191225').diff(moment(), 'minutes')
// result : 19271
moment('20191225').diff(moment(), 'seconds')
// result : 1156293
moment('20191225').diff(moment(), 'milliseconds')
// result : 1156293480
해당 예제는 2019-12-25
크리스마스까지 얼마나 남았는지 출력해보았다.
순서대로 년, 월, 일, 시, 분, 초 , 밀리초
표기하였습니다.
moment(비교 대상).diif(기준 일, 반환 타입)
으로 정해주면 됩니다.
출처