πΒ Reference
πΒ Chapter
Day.js
RelativeTimeFormat
- RelativeTimeFormat
Intl.RelativeTimeFormatΒ μ μΈμ΄μ μμ‘΄μ μΈ μλ μκ° νμμ μ¬μ©ν μ μκ² νλ€.
- JavaScriptμμ "μ΄μ ", "3μΌ μ ", "2μκ° ν"μ κ°μ μλμ μΈ μκ° ννμ μ¬μ©μμ μΈμ΄(λ‘μΌμΌ)μ λ§μΆ° μλμΌλ‘ λ²μν΄ μ£Όλ APIμ΄λ€.
- "1 day ago"λ "μ΄μ "λ₯Ό 쑰건문μΌλ‘ μμ±ν νμ μμ΄, λΈλΌμ°μ μ λ΄μ₯λ κΈ°λ₯μ ν΅ν΄ λ€κ΅μ΄ μ§μμ μμ½κ² ν μ μλ€.
νΉμ§
- λ€κ΅μ΄ μ§μ: μ μΈκ³ λ€μν μΈμ΄μ λ¬Έλ²μ λ§λ μλ μκ° ννμ μ 곡νλ€.
- μ μ°ν μ΅μ
: μ«μ νν λ°©μ(
always, auto)μ΄λ μ€νμΌ(long, short, narrow)μ μ€μ ν μ μλ€.
- μ±λ₯: λΈλΌμ°μ λ΄μ₯ κΈ°λ₯μ μ¬μ©νλ―λ‘ λ³λμ μΈλΆ λΌμ΄λΈλ¬λ¦¬(Moment.js λ±) μμ΄λ κ°λ³κ³ λΉ λ₯΄κ² λμνλ€.
μ¬μ© λ°©λ²
// 1. κ°μ²΄ μμ± (νκ΅μ΄ μ€μ )
const rtf = new Intl.RelativeTimeFormat('ko', {
numeric: 'auto' // 'always'λ "-1μΌ μ ", 'auto'λ "μ΄μ "λ‘ νμ
});
// 2. νμ λ§μΆκΈ° (κ°, λ¨μ)
console.log(rtf.format(-1, 'day')); // "μ΄μ "
console.log(rtf.format(1, 'day')); // "λ΄μΌ"
console.log(rtf.format(-2, 'month')); // "2λ¬ μ "
console.log(rtf.format(3, 'year')); // "3λ
ν"