UNPKG

@burglekitt/gmt

Version:

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

23 lines (22 loc) 1.2 kB
/** * Return the number of hours in the calendar day a zoned datetime falls on. * * - Accounts for DST transitions: a spring-forward day is 23 hours, a fall-back * day is 25 hours, and a normal day is 24 hours. Zones whose DST shift isn't * a whole hour (e.g. `Australia/Lord_Howe`'s 30-minute shift) return a * fractional value instead, such as 23.5 or 24.5. * - The calculation is based on the local calendar day of the input, not the * UTC instant. * - Returns null for invalid input. * * @param value zoned ISO 8601 datetime string * @returns number of hours in the day (usually 23, 24, or 25; fractional for * non-whole-hour DST shifts), or null on invalid input * * @example getHoursInZonedDay("2024-03-10T12:00:00-04:00[America/New_York]") // 23 * @example getHoursInZonedDay("2024-11-03T12:00:00-05:00[America/New_York]") // 25 * @example getHoursInZonedDay("2024-02-29T12:00:00+00:00[UTC]") // 24 * @example getHoursInZonedDay("2024-10-06T12:00:00+11:00[Australia/Lord_Howe]") // 23.5 * @example getHoursInZonedDay("invalid") // null */ export declare function getHoursInZonedDay(value: string): number | null;