Skip to content

intervalIntersectionUnix

intervalIntersectionUnix(aStart: string | number, aEnd: string | number, bStart: string | number, bEnd: string | number): { start: number; end: number; } | null

Return the overlapping span of two half-open Unix epoch intervals [start, end), or null when they do not overlap.

  • Compares numeric Unix epoch values directly.
  • The result is [max(aStart, bStart), min(aEnd, bEnd)), and it exists only when intervalsOverlapUnix is true — the same rule as intersectIntervals.
  • Touching intervals (e.g. aEnd === bStart) share no instant, because each end is excluded, and return null.
  • An empty interval (start === end) strictly inside the other returns itself; at either edge, or against another empty interval, it returns null.
  • Returns null if either interval is invalid (start > end).
  • Returns null on invalid input: non-numeric types, empty strings, and values that are not safe integers (fractions, NaN, ±Infinity, beyond ±(2^53 − 1)).
ParameterTypeDescription
aStartstring | numberUnix epoch value, in the one unit all epoch arguments share — first interval start
aEndstring | numberUnix epoch value, in the one unit all epoch arguments share — first interval end
bStartstring | numberUnix epoch value, in the one unit all epoch arguments share — second interval start
bEndstring | numberUnix epoch value, in the one unit all epoch arguments share — second interval end

{ start, end } with the overlapping span, or null on invalid input / no overlap

Members

MemberTypeDescription
startnumberThe instant the interval begins at, as a Unix epoch number in the unit the arguments share.
endnumberThe first instant after the interval, in the same unit as start. It is exclusive: the interval holds everything from start up to but not including this value. It can equal start, which makes the interval empty.
import { intervalIntersectionUnix } from "@northguild/gmt/unix/interval";
intervalIntersectionUnix(0, 1700000000, 1000000, 2000000) // { start: 1000000, end: 2000000 }
output 

unix/interval/intervalIntersectionUnix.ts