UNPKG

@storm-stack/date-time

Version:

This package includes a DateTime class, various utility functions for working with dates and times, and a number of formatting options.

27 lines (26 loc) 844 B
import { isBigInt, isDate, isNumber } from "@storm-stack/types"; import { RFC_3339_TIME_REGEX } from "../constants.mjs"; import { isDateTime } from "./is-date-time.mjs"; import { isInstant } from "./is-instant.mjs"; export function validateTime(value, _options) { if (isDateTime(value)) { return value.valid; } if (isInstant(value)) { return Boolean(value.epochMilliseconds); } let datetime; if (isDate(value) || isNumber(value) || isBigInt(value)) { const date = isNumber(value) || isBigInt(value) ? new Date(Number(value)) : value; if (Number.isNaN(date.getTime())) { return false; } datetime = date.toUTCString(); } else { datetime = value === null || value === void 0 ? void 0 : value.toUpperCase(); } if (!datetime) { return false; } return RFC_3339_TIME_REGEX.test(datetime); }