게시글을 올렸을때 오늘 날짜를 기준으로 얼마나 시간이 지났는지에 관한 함수이다.
함수를 만들기 전에 날짜를 손쉽게 다룰수 있는 moment.js라이브러리를 설치했다.
npm i moment --save
if (!date) {
return '';
}
const today = moment();
const postingDate = moment(date);
const dayDiff = postingDate.diff(today, 'days');
const hourDiff = postingDate.diff(today, 'hours');
const minutesDiff = postingDate.diff(today, 'minutes');
if (dayDiff === 0 && hourDiff === 0) {
const minutes = Math.ceil(-minutesDiff);
return minutes + '분 전';
}
if (dayDiff === 0 && hourDiff <= 24) {
const hour = Math.ceil(-hourDiff);
return hour + '시간 전';
}
return -dayDiff + '일 전';
diff
메서드는 moment.js라이브러리에서 사용가능한 메서드로 두 날짜간의 시간 차이를 계산해줘 주어진 단위에 따라 결과를 반환한다.
momentA.diff(momentB, unit, round);
diff메서드를 사용하면 momentA와 momentB 사이의 날짜 차이를 원하는 단위로 반환할 수 있다. 반환되는 값은 momentA가 B보다 클 경우 양수, 그렇지 않을 경우 음수이다.
const momentA = moment('2023-06-26');
const momentB = moment('2023-06-23');
const daysDiff = momentA.diff(momentB, 'days'); // 3
console.log(daysDiff); // 출력: 3