import moment from 'moment'; /** * Formats elapsed time from a given time. * @param date_time given time * @returns difference in the largest possible unit of time (days > hours > minutes > seconds) */ export const getTimePosted = (date_time: string) => { const datePosted = moment(date_time); const now = moment(); var time = date_time; var difference = now.diff(datePosted, 'seconds'); // Creating elapsedTime string to display to user // 0 to less than 1 minute if (difference < 60) { time = difference + ' seconds'; } // 1 minute to less than 1 hour else if (difference >= 60 && difference < 60 * 60) { difference = now.diff(datePosted, 'minutes'); time = difference + (difference === 1 ? ' minute' : ' minutes'); } // 1 hour to less than 1 day else if (difference >= 60 * 60 && difference < 24 * 60 * 60) { difference = now.diff(datePosted, 'hours'); time = difference + (difference === 1 ? ' hour' : ' hours'); } // Any number of days else if (difference >= 24 * 60 * 60 && difference < 24 * 60 * 60 * 3) { difference = now.diff(datePosted, 'days'); time = difference + (difference === 1 ? ' day' : ' days'); } // More than 3 days else if (difference >= 24 * 60 * 60 * 3) { time = datePosted.format('MMMM D, YYYY'); } return time; }; export const getTimeInShorthand = (date_time: string) => { const datePosted = moment(date_time); const now = moment(); var time = date_time; var difference = now.diff(datePosted, 's'); // Creating elapsedTime string to display to user // 0 to less than 1 minute if (difference < 60) { time = difference + 's'; } // 1 minute to less than 1 hour else if (difference >= 60 && difference < 60 * 60) { difference = now.diff(datePosted, 'm'); time = difference + 'm'; } // 1 hour to less than 1 day else if (difference >= 60 * 60 && difference < 24 * 60 * 60) { difference = now.diff(datePosted, 'h'); time = difference + 'h'; } // Any number of days else if (difference >= 24 * 60 * 60 && difference < 24 * 60 * 60 * 7) { difference = now.diff(datePosted, 'd'); time = difference + 'd'; } // More than 7 days else if (difference >= 24 * 60 * 60 * 7) { difference = now.diff(datePosted, 'w'); time = difference + 'w'; } return time; };