export function formatDate(isoString) { const d = new Date(isoString); return d.toLocaleDateString('ru-RU') + ' ' + d.toLocaleTimeString('ru-RU', { hour: '2-digit', minute: '2-digit' }); } export function formatShortDate(isoString) { return new Date(isoString).toLocaleDateString('ru-RU', { day: '2-digit', month: '2-digit' }); } export function formatSet(set) { if (set.isDropset && set.subSets) { return set.subSets.map(s => `${s.weight}×${s.reps}`).join('-'); } return `${set.weight}×${set.reps}`; } export function escapeHtml(str) { const div = document.createElement('div'); div.textContent = str; return div.innerHTML; } export function toDatetimeLocal(isoString) { const d = new Date(isoString); const pad = n => String(n).padStart(2, '0'); return `${d.getFullYear()}-${pad(d.getMonth()+1)}-${pad(d.getDate())}T${pad(d.getHours())}:${pad(d.getMinutes())}`; }