Skip to content
GwiyeomGo Tech Blog
About GwiyeomGo

JavaScript moment 사용 경험

JAVASCRIPT, 20222 min read

배경

특정 매장의 행사 소식을 등록하는 기능을 개발했다 작업하면서 moment 를 사용해서 낳짜를 지정하는 일을 많이 했고 헷갈렸다 사용했던 경우를 정리해보려고 한다

moment

JS 날짜 관련 라이브러리로 npm i moment 로 설치

DATE_FORMAT

"YYYY-MM-DD"
"YYYY-MM-DD HH:mm"
"YYYYMMDD"
"YYYYMMDD HH:mm"
  • 2일 뒤 날짜
moment().add(2, 'days').format("YYYY-MM-DD")
moment().add(2, 'd').format("YYYY-MM-DD")
  • 1달 전 날짜
moment(toDate).subtract("1", "M").format("YYYY-MM-DD");
  • 현재시간과 예약일 오후 6시 사이의 시간차
const scheduledDateAndTime = moment(scheduledDate + '18:00', "YYYYMMDD HH:mm")
const nowDateAndTime = moment()
const duration = moment.duration(scheduledDateAndTime.diff(nowDateAndTime));
const hours = duration.asHours();
if (hours < 0 || hours < 2) {
// 2시간이내인 경우
} else if (hours > 2) {
// 2시간 보다 많이 차이남
}

moment 에서 한국말 적용

import moment from "moment/moment";
import "moment/locale/ko";
moment.locale("ko"); //설정!
  • moment의 locale 사이즈가 커서 webpack 설정에서 exclude 된다고 합니다.

    • import "moment/locale/ko" 이런식으로 꼭 표기 해야 적용됩니다.
  • antd 에서 DatePicker 를 사용하는데 한국만로 요일 표기 요청이 있었다

import {ConfigProvider} from "antd";
import locale from "antd/lib/locale/ko_KR";
<ConfigProvider locale={locale}>
....
</ConfigProvider>

moment 코드도 가장 상위 컴포넌트에 적용하고 해당 코드도 적용했더니 모든 DatePicker 의 요일이 한국말로 표기되었다.

참고

Get hours difference between two dates in Moment Js https://stackoverflow.com/questions/15411833/using-moment-js-to-convert-date-to-string-mm-dd-yyyy https://stackoverflow.com/questions/24996490/how-to-find-the-day-month-and-year-with-moment-js https://ljlm0402.netlify.app/nodejs/moment/

© 2024 by GwiyeomGo Tech Blog. All rights reserved.