UNPKG

@burglekitt/gmt

Version:

Temporal-based date and time utilities with timezone support and polyfill integration

35 lines (34 loc) 1.11 kB
import { Temporal } from "@js-temporal/polyfill"; import { isValidDateTime, isValidTime } from "../validate/index.js"; /** * Return a string with millisecond precision removed from a PlainDateTime or PlainTime value. * * - Truncates to second precision. * - Accepts both PlainDateTime and PlainTime formats. * - Returns "" for invalid input. * * @param value ISO PlainDateTime or PlainTime string * @returns ISO string without milliseconds, or "" on invalid input * * @example chopMilliseconds("2024-02-29T12:34:56.789") // "2024-02-29T12:34:56" * @example chopMilliseconds("12:34:56.789") // "12:34:56" * @example chopMilliseconds("invalid") // "" */ export function chopMilliseconds(value) { try { if (isValidDateTime(value)) { return Temporal.PlainDateTime.from(value).toString({ smallestUnit: "second", }); } if (isValidTime(value)) { return Temporal.PlainTime.from(value).toString({ smallestUnit: "second", }); } return ""; } catch { return ""; } }