UNPKG

uploaded-time-ago

Version:

It calculates the time just like Facebook whenever a new post or anything is uploaded and this function is used to calculate the time distance from the current time.

42 lines (36 loc) 1.23 kB
/** * Facebook post Time Ago function */ const timeAgo = (timestamp) => { // Check if the timestamp is valid if (!timestamp || isNaN(timestamp) || typeof timestamp !== "number") { return "Invalid timestamp"; } const SECOND = 1000; const MINUTE = 60 * SECOND; const HOUR = 60 * MINUTE; const DAY = 24 * HOUR; const WEEK = 7 * DAY; const MONTH = 30 * DAY; const YEAR = 365 * DAY; const timeElapsed = Date.now() - timestamp; if (timeElapsed < 0) { return "Timestamp is in the future"; } if (timeElapsed < MINUTE) { return `${Math.floor(timeElapsed / SECOND)} seconds ago`; } else if (timeElapsed < HOUR) { return `${Math.floor(timeElapsed / MINUTE)} minutes ago`; } else if (timeElapsed < DAY) { return `${Math.floor(timeElapsed / HOUR)} hours ago`; } else if (timeElapsed < WEEK) { return `${Math.floor(timeElapsed / DAY)} days ago`; } else if (timeElapsed < MONTH) { return `${Math.floor(timeElapsed / WEEK)} weeks ago`; } else if (timeElapsed < YEAR) { return `${Math.floor(timeElapsed / MONTH)} months ago`; } else { return `${Math.floor(timeElapsed / YEAR)} years ago`; } }; export default timeAgo;