A social knowledge tool for researchers built on ATProto
1const intervals = [ 2 { label: 'y', seconds: 31536000 }, 3 { label: 'mo', seconds: 2592000 }, 4 { label: 'd', seconds: 86400 }, 5 { label: 'h', seconds: 3600 }, 6 { label: 'm', seconds: 60 }, 7 { label: 's', seconds: 1 }, 8]; 9 10export const getRelativeTime = (dateString: string) => { 11 const date = new Date(dateString); 12 const seconds = Math.floor((Date.now() - date.getTime()) / 1000); 13 const interval = intervals.find((i) => i.seconds < seconds); 14 15 if (!interval) return 'just now'; 16 const count = Math.floor(seconds / interval.seconds); 17 if (count < 1) return 'just now'; 18 19 return `${count}${interval.label}`; 20};