언어/Javascript

[라이브러리] moment 자주 사용하는 기능 정리

릴리코더 2023. 6. 16. 10:41

📌 날짜 형식 변경하기

 

moment().format()

-> moment 객체를 원하는 날짜/시간 형태로 나타냄

-> string으로 리턴

 

 

📌 날짜/시간 추출하기

 

moment().hours()

-> second/seconds, month/months, year/years 등등.. 사용가능

-> number 로 리턴

 

 

📌 Moment 객체의 처음 또는 마지막 날짜/시간 구하기

 

moment().startOf() 또는 moment().endOf()

-> moment 객체의 처음 또는 마지막 날짜/시간을 구할 수 있음

-> moment 객체로 리턴

-> 사용 예시

moment("2023-06-16").startOf("month").format("DD"); // 30

 

moment().daysInMonth()

-> moment객체의 해당 월의 일수를 구함

-> number 로 리턴

 

 

 

📌 이전 또는 이후 날짜/시간 구하기

 

moment().add() 또는 moment().substract() 

-> moment 객체에서 날짜/시간을 더하거나 빼기

-> moment 객체로 리턴

-> 사용 예시

moment("2023-05-01").add(1, "month").format("YYYY-MM-DD") // 2023-06-01

 

 

📌 날짜 비교

moment().isBefore() 또는moment().isSame() 또는 moment().isAfter() 

-> moment 객체가 특정 날짜/시간보다 전인지, 같은지, 후인지 비교하고 싶을 때 사용

-> boolean으로 리턴

-> 사용 예시

moment("2023-06-16").isBefore("2023-06-01"); // false

moment("2023-06-16").isSame("2023-06-16"); // true

moment("2023-06-16").isAfter("2023-06-01"); // true

 

 

참고

서버에서 시간을 타임존(timezone) 타입으로 리턴해주는 경우.

moment 라이브러리를 사용하면 브라우저 실행 지역에 따라(예를들어 Asia/Seoul) 시간을 맞추어 주기 때문에 표현하고자 하는 시간과 맞지 않을 수 있다.

 

이때 클라이언트에서 처리가 필요한데, moment-timezone을 설치해서 사용하면 된다.

moment.tz(시간:string, 내려오는포맷:string | string[], true:boolean, 기준국가 또는 UTC:string).format(날짜포맷형식:string)

* moment-timezone에서 moment 기능은 전부 사용할 수 있으므로 moment-timezone만 설치해서 사용하기!!