| 21 | const resolve = (t) => (t !== undefined ? JSON.parse(t) : JSON.parse(toTuple(new Date(), false))); |
| 22 | |
| 23 | const fmtTuple = (t, fmt) => { |
| 24 | const [Y, mo, d, H, Mi, S, w, j] = t; |
| 25 | const map = { |
| 26 | Y, y: pad(Y % 100), m: pad(mo), d: pad(d), H: pad(H), M: pad(Mi), S: pad(S), |
| 27 | I: pad((H % 12) || 12), p: H < 12 ? "AM" : "PM", j: pad(j, 3), w: jsDay(w), |
| 28 | a: DAYS_ABBR[jsDay(w)], A: DAYS[jsDay(w)], b: MONTHS_ABBR[mo - 1], B: MONTHS[mo - 1], "%": "%", |
| 29 | }; |
| 30 | return fmt.replace(/%(.)/g, (_, c) => (c in map ? String(map[c]) : "%" + c)); |
| 31 | }; |
| 32 | |
| 33 | // "Thu Jan 1 00:00:00 1970", day-of-month space-padded to width 2. |
| 34 | const ascForm = (t) => `${DAYS_ABBR[jsDay(t[6])]} ${MONTHS_ABBR[t[1] - 1]} ${String(t[2]).padStart(2, " ")} ${pad(t[3])}:${pad(t[4])}:${pad(t[5])} ${t[0]}`; |