Skip to content

getHoursInZonedDay

getHoursInZonedDay(value: string): number
import { getHoursInZonedDay } from "@northguild/gmt/zoned/calculate";

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.
Parameter Type Description
value string zoned ISO 8601 datetime string

number of hours in the day (usually 23, 24, or 25; fractional for non-whole-hour DST shifts), or null on invalid input

getHoursInZonedDay("2024-03-10T12:00:00-04:00[America/New_York]") // 23
getHoursInZonedDay("2024-11-03T12:00:00-05:00[America/New_York]") // 25
getHoursInZonedDay("2024-02-29T12:00:00+00:00[UTC]") // 24
getHoursInZonedDay("2024-10-06T12:00:00+11:00[Australia/Lord_Howe]") // 23.5
getHoursInZonedDay("invalid") // null

zoned/calculate/getHoursInZonedDay.ts