diff --git a/src/components/NeoFetch.tsx b/src/components/NeoFetch.tsx index 7bce4d3..1d4764b 100644 --- a/src/components/NeoFetch.tsx +++ b/src/components/NeoFetch.tsx @@ -25,17 +25,28 @@ export default function NeoFetch() { {(() => { const startDate = new Date("2010-11-08T03:00:00+09:00"); const now = new Date(); - let diff = now.getTime() - startDate.getTime(); - - const years = Math.floor(diff / (1000 * 60 * 60 * 24 * 365)); - diff %= 1000 * 60 * 60 * 24 * 365; - const days = Math.floor(diff / (1000 * 60 * 60 * 24)); - diff %= 1000 * 60 * 60 * 24; - const hours = Math.floor(diff / (1000 * 60 * 60)); - diff %= 1000 * 60 * 60; - const mins = Math.floor(diff / (1000 * 60)); - - return `${years} years, ${days} days, ${hours} hours, ${mins} mins`; + + let diff = now - startDate; + + // 밀리초를 단순 나눗셈으로 안 하고 실제 날짜 차이로 계산 + const start = new Date(startDate); + let years = now.getFullYear() - start.getFullYear(); + + start.setFullYear(start.getFullYear() + years); + if (start > now) { + years--; + start.setFullYear(start.getFullYear() - 1); + } + + let days = Math.floor((now - start) / (1000 * 60 * 60 * 24)); + start.setDate(start.getDate() + days); + + let hours = Math.floor((now - start) / (1000 * 60 * 60)); + start.setHours(start.getHours() + hours); + + let mins = Math.floor((now - start) / (1000 * 60)); + + console.log(`${years} years, ${days} days, ${hours} hours, ${mins} mins`); })()}