Time Ago
April 10, 2023
React
유튜브는 비디오 생성 날짜 대신 '3주 전' 이나 '1개월 전' 과 같이 비디오가 얼마 전에 생성되었는지 나타내 준다. 이 표시는 사실 서버로부터 생성된 날짜와 시간을 받아온다면 현재 시간을 기준으로 바꿔주는건 그렇게 어려운일은 아닐 것이다. 하지만 이와같은 귀찮은 일을 대신 해주는 1kb대의 가벼운 패키지가 있어 공식문서를 토대로 간단하게 소개한다.
TimeAgo
설치
$ npm install react-time-ago javascript-time-ago --save
리액트 타임어고는 자바스크립트 타임어고에 의존적이라 두개 다 추가한다.
초기화
타임어고는 아래와 같은 초기화가 필요하다.
import TimeAgo from 'javascript-time-ago' import en from 'javascript-time-ago/locale/en.json' import ru from 'javascript-time-ago/locale/ru.json' TimeAgo.addDefaultLocale(en) TimeAgo.addLocale(ru)
불러오기 & 사용하기
그 뒤에 리액트 타임어고를 불러서 쓰면 된다.
import ReactTimeAgo from 'react-time-ago' <ReactTimeAgo date={publishedAt} />
다만 date
에 들어가야할 데이터 형식은 Date instance
여야 하므로 new Date()
에 담아줘야 에러가 생기지 않는다.
사용예시
한국어도 지원하는데 한국어를 기준으로 사용 예시는 아래와 같다.
import TimeAgo from 'javascript-time-ago' import ko from 'javascript-time-ago/locale/ko.json' import ReactTimeAgo from 'react-time-ago' TimeAgo.addDefaultLocale(ko) // ... <ReactTimeAgo date={new Date(publishedAt)} />
TimeAgo
와 언어설정인 ko
를 불러와서 불러온 TimeAgo
를 이용하여 기본 언어 설정을 한국어로 해준 뒤에, ReactTimeAgo
를 불러와 컴포넌트처럼 쓰면 된다. 다만, date
속성에는 Date instance
로 들어가야 하므로 사용 하는 자료형에 따라 new Date()
를 이용하여 date intance
로 바꿔줘야 할 소요가 생길 수 있다.
이 외의 기능들이나 더 자세한 사항은 공식 문서를 통해 확인 가능하다.