UNPKG

@burglekitt/gmt

Version:

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

30 lines (29 loc) 1.22 kB
import { Temporal } from "@js-temporal/polyfill"; import { isValidDateTime } from "../validate/index.js"; /** * Return true when `value1` is strictly before `value2` for PlainDateTime values. * * - Uses Temporal.PlainDateTime.compare to compare date-times. * - Returns false if either input is invalid. * * @param value1 ISO PlainDateTime string for the first value * @param value2 ISO PlainDateTime string for the second value * @returns boolean indicating whether value1 < value2 * * @example isBeforeDateTime("2024-02-28T12:34:56", "2024-02-29T12:34:56") // true * @example isBeforeDateTime("2024-02-29T12:34:56", "2024-02-29T12:34:56") // false * @example isBeforeDateTime("2024-02-29T12:34:56", "2024-02-28T12:34:56") // false * @example isBeforeDateTime("invalid", "2024-02-29T12:34:56") // false * @example isBeforeDateTime("2024-02-29T12:34:56", "invalid") // false */ export function isBeforeDateTime(value1, value2) { if (!isValidDateTime(value1) || !isValidDateTime(value2)) { return false; } try { return (Temporal.PlainDateTime.compare(Temporal.PlainDateTime.from(value1), Temporal.PlainDateTime.from(value2)) === -1); } catch { return false; } }