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
JavaScript
/**
* 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;