FrontEnd/ReactNative

Day.js : 날짜 라이브러리 설치 및 사용

데브슈 2025. 3. 4. 13:47

00. Day.js란

JavaScript에서 날짜와 시간을 다루기 위한 라이브러리이다.

📌특징

  • 가벼움 : 약 2KB 크기로 번들 사이즈를 줄일 수 있다.
  • 빠름 : 불필요한 기능 없이 최적화된 성능을 제공한다.
  • 불변성(Immutability) 지원 : 기존 객체를 변경하지 않고 새로운 객체를 반환한다.
  • Moment.js 와 유사한 API : 기존 Moment.js 사용자도 쉽게 적응이 가능하다.
  • 플러그인 확장 가능

찾아보니 Moment.js의 경우 업데이트가 중단되어 공식적으로 유지보수되지 않으며

파일 크기가 약 300KB로 크고, 성능 최적화도 부족하여 Dayjs보다 상대적으로 느리다.

 

그렇기에 나는 Day.js를 사용하여 날짜를 구현하고자 한다.


01. 설치 방법

npm install dayjs

혹은

const dayjs= = require('dayjs');

02. 기본 사용 방법

1) 현재 날짜 가져오기

import dayjs from 'dayjs';

const now = dayjs();
now.format(); // "2025-03-04T12:34:56+09:00"

* dayjs() : 날짜를 다룰 수 있도록 변환 ➡️ ISO 8601 형식으로 출력 / Day.js 객체 

* format() : 출력하고 싶은 날짜 형식 지정 ➡️ 예시 : format("YYYY/MM/DD"); / 문자열

 

➡️ dayjs() 는 날짜를 만들 때, .format() 은 날짜를 예쁘게 출력할 때 사용

 

2) 특정 날짜 생성하기

import dayjs from 'dayjs';

const now = dayjs('2025-02-19');

now.format('YYYY-MM-DD'); // "2025-02-19";

dayjs() 를 사용하여 특정 날짜를 생성할 수 있다.

'2025-02-19'  = '2025/02/19'

 

3) 날짜 형식 변환

const now = dayjs();

now.format("YYYY-MM-DD HH:mm:ss")
// "2025-03-04 12:34:56"

 

4) 날짜 연산 ➡️ add(), subtract()

dayjs().add(1, "day").format("YYYY-MM-DD") // 내일 날짜
dayjs().subtract(1, "month").format("YYYY-MM-DD") // 한달 전

 

 

5) diff 통한 날짜 비교

const date1 = dayjs('2025-03-01');
const date2 = dayjs('2025-03-04');

const diffIndDays = date2.diff(date, 'day'); // 3

diff는 두 날짜 사이의 차이를 계산하는 메서드day, month, year 단위로 구할 수 있다.

 

* 첫 번째 인자 : 비교할 대상 날짜

* 두 번째 인자 : 계산할 단위 ('day', 'month', 'year')

 

5) 요일 및 날짜 정보 가져오기

dayjs().day(); // 0(일요일) ~ 6(토요일)
dayjs().date(); // 날짜
dayjs().month(); // 0(1월) ~ 11(12월)
dayjs().year(); // 연도