From aed1c5a0b83c26c72d25ed60ebd3114fb192f783 Mon Sep 17 00:00:00 2001 From: Abhishek Date: Jul 10 2018 13:11:49 +0000 Subject: add relative time helper --- diff --git a/src/utils.ts b/src/utils.ts index 8ea8f46..ab8342b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -40,7 +40,52 @@ export function beautifyDate(postDate: any, type: string): string { } /** - * Return the type of package from it names. + * Function to convert EPOCH time to relative time + * @param timestamp actual timestamp of the post + * @returns Relative time in format HH/MM ago + */ + +export function convertToRelativeTime(timestamp: any): string { + //convert EPOCH Time to javascript time + timestamp = parseInt(timestamp) * 1000; + + //get current time + var current: any = new Date(); + + var msPerMinute = 60 * 1000; + var msPerHour = msPerMinute * 60; + var msPerDay = msPerHour * 24; + var msPerMonth = msPerDay * 30; + var msPerYear = msPerDay * 365; + + var elapsed = current - timestamp; + + if (elapsed < msPerMinute) { + return Math.round(elapsed / 1000) + ' seconds ago'; + } + + else if (elapsed < msPerHour) { + return Math.round(elapsed / msPerMinute) + ' minutes ago'; + } + + else if (elapsed < msPerDay) { + return Math.round(elapsed / msPerHour) + ' hours ago'; + } + + else if (elapsed < msPerMonth) { + return Math.round(elapsed / msPerDay) + ' days ago'; + } + + else if (elapsed < msPerYear) { + return Math.round(elapsed / msPerMonth) + ' months ago'; + } + + else { + return Math.round(elapsed / msPerYear) + ' years ago'; + } +} + + /* Return the type of package from it names. * * Matches the name against the Fedora packaging guidelines * Taken from: https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines