1시간 전
, 3개월 전
등 상대적인 시간을 표기하고 싶다면 JavaScript
의 내장 API인 Intl
의 RelativeTimeFormat
을 사용한다.
const relativeFormatter = new Intl.RelativeTimeFormat("ko", {
numeric: "always",
});
const ago = relativeFormatter.format(-1, "day");
const zero = relativeFormatter.format(0, "day");
const after = relativeFormatter.format(1, "day");
console.log(ago, zero, after); // 1일 전 0일 후 1일 후
format
의 첫 인자는 상대적인 시간의 숫자를, 두 번째 인자는 날짜 단위를 요구한다.
2022-11-02
에 게시된 글의 상대적 시간을 '~일 전'으로 표시
const started = new Date("2022-11-02");
const today = new Date();
const relativeFormatter = new Intl.RelativeTimeFormat("ko", {
numeric: "always",
});
const daysPassed = Math.ceil(
(started.getTime() - today.getTime()) / (1000 * 60 * 60 * 24)
);
const daysAgo = relativeFormatter.format(daysPassed, "day");
console.log(daysAgo); // 30일 전