summaryrefslogtreecommitdiff
path: root/packages/tweetdeck/src/lib/utils/time.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/tweetdeck/src/lib/utils/time.ts')
-rw-r--r--packages/tweetdeck/src/lib/utils/time.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/tweetdeck/src/lib/utils/time.ts b/packages/tweetdeck/src/lib/utils/time.ts
new file mode 100644
index 0000000..f2802bf
--- /dev/null
+++ b/packages/tweetdeck/src/lib/utils/time.ts
@@ -0,0 +1,18 @@
+export function timeAgo(date: string | number | Date) {
+ const ts = typeof date === "string" || typeof date === "number" ? new Date(date).getTime() : date.getTime();
+ const diff = Date.now() - ts;
+ const seconds = Math.floor(diff / 1000);
+ if (seconds < 60) return `${seconds}s`;
+ const minutes = Math.floor(seconds / 60);
+ if (minutes < 60) return `${minutes}m`;
+ const hours = Math.floor(minutes / 60);
+ if (hours < 24) return `${hours}h`;
+ const days = Math.floor(hours / 24);
+ if (days < 7) return `${days}d`;
+ const weeks = Math.floor(days / 7);
+ if (weeks < 4) return `${weeks}w`;
+ const months = Math.floor(days / 30);
+ if (months < 12) return `${months}mo`;
+ const years = Math.floor(days / 365);
+ return `${years}y`;
+}