UNPKG

@thi.ng/date

Version:

Datetime types, relative dates, math, iterators, composable formatters, locales

26 lines (25 loc) 720 B
import { Z2, Z3, Z4 } from "@thi.ng/strings/pad-left"; import { decomposeDuration } from "./duration.js"; const defTimecode = (fps, opts = {}) => { const { sep = "::::", day = false, hour = true, frame: useFrame = true } = opts; const frame = 1e3 / fps; const $sep = (x) => sep[x] ?? ":"; const fmtFrame = fps < 100 ? Z2 : fps < 1e3 ? Z3 : Z4; return (t) => { const [_, __, d, h, m, s, ms] = decomposeDuration(t); let parts = ""; if (d || day) parts += Z2(d) + $sep(0); if (h || d || day || hour) parts += Z2(h) + $sep(1); parts += Z2(m) + $sep(2) + Z2(s); if (useFrame) parts += $sep(3) + fmtFrame(ms / frame | 0); return parts; }; }; export { defTimecode };