export const getDate = (date: Date): string => {
const _date = new Date(date)
const yyyy = _date.getFullYear()
const mm = String(_date.getMonth() + 1).padStart(2, "0")
const dd = String(_date.getDate()).padStart(2, "0")
return `${yyyy}-${mm}-${dd}`
}
export const elapsedTime = (date: Date): string => {
const start = new Date(date)
const end = new Date()
const seconds = Math.floor((end.getTime() - start.getTime()) / 1000)
if (seconds < 60) return "방금 전"
else if (seconds < 3600) {
const minutes = Math.floor(seconds / 60)
return `${minutes}분 전`
} else if (seconds < 86400) {
const hours = Math.floor(seconds / 3600)
return `${hours}시간 전`
} else if (seconds < 604800) {
const days = Math.floor(seconds / 86400)
return `${days}일 전`
}
return getDate(date)
}
start와 end 사이의 시간을 밀리초로 계산한 뒤, 초 단위로 변환하며, 소수가 있을 경우 버린다.
조건문을 통해 경과 시간을 문자열로 반환한다.
`60초 미만`이면 '방금 전' 리턴,
`60초 이상 3600초 미만`이면 분 단위로 경과 시간 리턴 (예: 5분 전),
`3600초 이상 86400초 미만`이면 시간 단위로 경과 시간 리턴 (예: 3시간 전),
`86400초 이상 604800초 미만`이면 일 단위로 경과 시간 리턴 (예: 2일 전),
만약 모든 조건에 해당하지 않는 경우 getDate(date) 함수를 호출하고 결과를 반환한다.
참고 자료
https://velog.io/@wlwl99/JavaScript로-방금-전-몇-분-전-몇-시간-전-형식으로-표시하는-법
JavaScript로 방금 전, 몇 분 전, 몇 시간 전 형식으로 표시하는 법
솔로 프로젝트에서 게시판에서 게시글이 올라온 시간을 "n분 전" 이런 식으로 나타내고 싶어서 현재 시간을 기준으로 얼마나 지났는지 구해주는 함수를 만들었다.이때 date에 들어가는 값은 숫자
velog.io
'etc' 카테고리의 다른 글
230615 (0) | 2023.06.15 |
---|---|
자바스크립트 딥다이브 - 프로토타입 (0) | 2023.04.21 |
자바스크립트 딥다이브 - 클로저 (0) | 2023.04.13 |
원티드 프리온보딩 인턴십 9차 후기 (프론트엔드 부트캠프, 취업연계, JavaScript & React) (0) | 2023.04.05 |
자바스크립트로 todo-list 만들기 (0) | 2022.12.07 |
export const getDate = (date: Date): string => {
const _date = new Date(date)
const yyyy = _date.getFullYear()
const mm = String(_date.getMonth() + 1).padStart(2, "0")
const dd = String(_date.getDate()).padStart(2, "0")
return `${yyyy}-${mm}-${dd}`
}
export const elapsedTime = (date: Date): string => {
const start = new Date(date)
const end = new Date()
const seconds = Math.floor((end.getTime() - start.getTime()) / 1000)
if (seconds < 60) return "방금 전"
else if (seconds < 3600) {
const minutes = Math.floor(seconds / 60)
return `${minutes}분 전`
} else if (seconds < 86400) {
const hours = Math.floor(seconds / 3600)
return `${hours}시간 전`
} else if (seconds < 604800) {
const days = Math.floor(seconds / 86400)
return `${days}일 전`
}
return getDate(date)
}
start와 end 사이의 시간을 밀리초로 계산한 뒤, 초 단위로 변환하며, 소수가 있을 경우 버린다.
조건문을 통해 경과 시간을 문자열로 반환한다.
`60초 미만`이면 '방금 전' 리턴,
`60초 이상 3600초 미만`이면 분 단위로 경과 시간 리턴 (예: 5분 전),
`3600초 이상 86400초 미만`이면 시간 단위로 경과 시간 리턴 (예: 3시간 전),
`86400초 이상 604800초 미만`이면 일 단위로 경과 시간 리턴 (예: 2일 전),
만약 모든 조건에 해당하지 않는 경우 getDate(date) 함수를 호출하고 결과를 반환한다.
참고 자료
https://velog.io/@wlwl99/JavaScript로-방금-전-몇-분-전-몇-시간-전-형식으로-표시하는-법
JavaScript로 방금 전, 몇 분 전, 몇 시간 전 형식으로 표시하는 법
솔로 프로젝트에서 게시판에서 게시글이 올라온 시간을 "n분 전" 이런 식으로 나타내고 싶어서 현재 시간을 기준으로 얼마나 지났는지 구해주는 함수를 만들었다.이때 date에 들어가는 값은 숫자
velog.io
'etc' 카테고리의 다른 글
230615 (0) | 2023.06.15 |
---|---|
자바스크립트 딥다이브 - 프로토타입 (0) | 2023.04.21 |
자바스크립트 딥다이브 - 클로저 (0) | 2023.04.13 |
원티드 프리온보딩 인턴십 9차 후기 (프론트엔드 부트캠프, 취업연계, JavaScript & React) (0) | 2023.04.05 |
자바스크립트로 todo-list 만들기 (0) | 2022.12.07 |