export function haversineMiles(a: [number, number], b: [number, number]) { const toRad = (x: number) => (x * Math.PI) / 180; const R = 3958.7613; // Earth radius in miles const dLat = toRad(b[0] - a[0]); const dLon = toRad(b[1] - a[1]); const lat1 = toRad(a[0]); const lat2 = toRad(b[0]); const sinDLat = Math.sin(dLat / 2); const sinDLon = Math.sin(dLon / 2); const h = sinDLat * sinDLat + Math.cos(lat1) * Math.cos(lat2) * sinDLon * sinDLon; const c = 2 * Math.atan2(Math.sqrt(h), Math.sqrt(1 - h)); return R * c; } export function timeAgo(iso: string, now: Date = new Date()) { const t = new Date(iso); const s = Math.max(0, Math.floor((now.getTime() - t.getTime()) / 1000)); if (s < 60) return `${s}s ago`; const m = Math.floor(s / 60); if (m < 60) return `${m}m ago`; const h = Math.floor(m / 60); if (h < 24) return `${h}h ago`; const d = Math.floor(h / 24); return `${d}d ago`; }