const MINUTE = 60; const HOUR = 60 * MINUTE; const DAY = 24 * HOUR; const YEAR = 365 * DAY; const MONTH = YEAR / 12; /** * get readable string of time elapsed since date * @param {Date} date * @returns string */ export default function timeElapsed(date) { const now = new Date(); const age = Math.floor((now.getTime() - date.getTime()) / 1000); const years = Math.floor(age / YEAR); let remainder = age % YEAR; const months = Math.floor(remainder / MONTH); remainder %= MONTH; const days = Math.floor(remainder / DAY); remainder %= DAY; const hours = Math.floor(remainder / HOUR); remainder %= HOUR; const minutes = Math.floor(remainder / MINUTE); const seconds = remainder % MINUTE; if (years > 0) return years === 1 ? 'vor 1 Jahr' : `vor ${years} Jahren`; if (months > 0) return months === 1 ? 'vor 1 Monat' : `vor ${months} Monaten`; if (days > 0) return days === 1 ? 'vor 1 Tag' : `vor ${days} Tagen`; if (hours > 0) return hours === 1 ? 'vor 1 Stunde' : `vor ${hours} Stunden`; if (minutes > 0) return minutes === 1 ? 'vor 1 Minute' : `vor ${minutes} Minuten`; return seconds === 1 ? 'vor 1 Sekunde' : `vor ${seconds} Sekunden`; }