본문 바로가기

Frontend/JavaScript

JavaScript 시간 계산 표시 (방금전, 몇분전, 몇시간전, 몇일전...)

유튜브를 보면 글 작성 기준으로 방금 전, 몇분 전, 몇시간 전, 몇일 전, 몇주 전, 몇개월 전, 몇 년전 이런 식으로 시간을 표기해줘요.

저 역시도 왠만하면 글 작성 날짜를 보여주는 것보다 지나간 시간을 계산해서 표기해주는 것이 좋더라구요.

물론, 프로젝트에 따라 다르겠지만요!

 

그럼 자바스크립트에서 글 작성 날짜를 받아서 해당 글이 얼만큼 시간이 흘렀는지 표기해주는 함수를 만들어볼게요.

 

function displayedAt(createdAt) {
  const milliSeconds = new Date() - createdAt
  const seconds = milliSeconds / 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)}일 전`
  const weeks = days / 7
  if (weeks < 5) return `${Math.floor(weeks)}주 전`
  const months = days / 30
  if (months < 12) return `${Math.floor(months)}개월 전`
  const years = days / 365
  return `${Math.floor(years)}년 전`
}

 

기능 요구사항에 맞게 잘 개조하셔서 사용하시면 좋을 것 같습니다.