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 + 'm ago'; } // 1 hour to less than 1 day else if (difference >= 60 * 60 && difference < 24 * 60 * 60) { difference = now.diff(datePosted, 'hours'); time = difference + 'h ago'; } // Any number of days else if (difference >= 24 * 60 * 60 && difference < 24 * 60 * 60 * 3) { difference = now.diff(datePosted, 'days'); time = difference + 'd ago'; } // More than 3 days else if (difference >= 24 * 60 * 60 * 3) { time = datePosted.format('M-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; };