솔로 프로젝트에서 게시판에서 게시글이 올라온 시간을 "n분 전" 이런 식으로 나타내고 싶어서 현재 시간을 기준으로 얼마나 지났는지 구해주는 함수를 만들었다.
const elapsedTime = (date: number): string => {
const start = new Date(date);
const end = new Date();
const seconds = Math.floor((end.getTime() - start.getTime()) / 1000);
if (seconds < 60) return '방금 전';
const minutes = seconds / 60;
if (minutes < 60) return `${Math.floor(minutes)}분 전`;
const hours = minutes / 60;
if (hours < 24) return `${Math.floor(hours)}시간 전`;
const days = hours / 24;
if (days < 7) return `${Math.floor(days)}일 전`;
return `${start.toLocaleDateString()}`;
};
date
에 들어가는 값은 숫자로 이루어진 timestamp이다.1679652249193
new Date()
에 넣으면 읽을 수 있는 시간과 날짜로 변환할 수 있다.Fri Mar 24 2023 19:04:09 GMT+0900 (한국 표준시)
getTime()
메소드를 쓰면 다시 timestamp로 변환할 수 있다.12518739
Math.floor()
를 이용해 내림처리해준다.12518
2023.03.24
이렇게 표시하도록 마지막에 리턴문을 작성해준다.짠.. 결과물이다 🤓
솔로 프로젝트 화이팅입니다 ~~!