polls on atproto
pollz.waow.tech
atproto
zig
1// html escaping
2export const esc = (s: string) =>
3 s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
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};