Files
Skald-Circle/web/components/tasks/utils.js
T
2026-07-10 15:02:09 +01:00

34 lines
984 B
JavaScript

export function formatDate(iso) {
if (!iso) return '—';
return new Date(iso).toLocaleString(undefined, {
day: '2-digit', month: '2-digit', year: '2-digit',
hour: '2-digit', minute: '2-digit',
});
}
export function formatDuration(ms) {
if (ms == null) return '—';
if (ms < 1000) return `${ms}ms`;
if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;
const m = Math.floor(ms / 60000);
const s = Math.round((ms % 60000) / 1000);
return `${m}m ${s}s`;
}
// SQLite stores UTC without timezone suffix — normalise before parsing.
export function parseUtc(iso) {
if (!iso) return null;
return new Date(iso.replace(' ', 'T') + 'Z');
}
export function formatElapsed(since) {
const d = parseUtc(since);
if (!d) return '—';
const s = Math.floor((Date.now() - d.getTime()) / 1000);
if (s < 60) return `${s}s`;
const m = Math.floor(s / 60);
if (m < 60) return `${m}m ${s % 60}s`;
const h = Math.floor(m / 60);
return `${h}h ${m % 60}m`;
}