polls on atproto pollz.waow.tech
atproto zig
at main 16 lines 599 B view raw
1// html escaping 2export const esc = (s: string) => 3 s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"); 4 5// relative time 6export const ago = (date: string) => { 7 const seconds = Math.floor((Date.now() - new Date(date).getTime()) / 1000); 8 if (seconds < 60) return "just now"; 9 const minutes = Math.floor(seconds / 60); 10 if (minutes < 60) return `${minutes}m ago`; 11 const hours = Math.floor(minutes / 60); 12 if (hours < 24) return `${hours}h ago`; 13 const days = Math.floor(hours / 24); 14 if (days < 30) return `${days}d ago`; 15 return new Date(date).toLocaleDateString(); 16};