Skip to content

intervalLengthUnix

intervalLengthUnix(start: string | number, end: string | number, unit: string): number
import { intervalLengthUnix } from "@northguild/gmt/unix/interval";

Return the exact length of a Unix epoch interval in unit, as a real (possibly fractional) number.

  • Distinct from intervalCountUnix, which counts local calendar unit boundaries crossed rather than measuring exact duration.
  • Uses the system timeZone for calendar-unit resolution (consistent with intervalCountUnix and splitIntervalByUnitUnix), so month/year lengths are host-dependent; fixed-length units (hour, minute, second, …) are timeZone-independent.
  • Returns 0 for a zero-length interval (start === end).
  • Returns null on invalid input (non-finite/non-integer start/end, start > end, unsupported unit, or invalid timeZone).
Parameter Type Description
start string | number Unix epoch value (seconds or milliseconds) — interval start
end string | number Unix epoch value (seconds or milliseconds) — interval end
unit string unit string — any DateTimeUnit

exact length of the interval expressed in unit, or null on invalid input

intervalLengthUnix(0, 86400000, "hour") // 24
intervalLengthUnix(0, 5400000, "hour") // 1.5
intervalLengthUnix(0, 0, "hour") // 0
intervalLengthUnix(86400000, 0, "hour") // null
intervalLengthUnix(NaN, 86400000, "hour") // null

unix/interval/intervalLengthUnix.ts