Skip to content

isBetweenDateTime

isBetweenDateTime(dateTime: string, start: string, end: string, options?: { inclusiveStart?: boolean; inclusiveEnd?: boolean; }): boolean
import { isBetweenDateTime } from "@northguild/gmt/plain/compare";

Return true when dateTime is between start and end (inclusive by default).

  • Uses Temporal.PlainDateTime.compare to compare date-times.
  • Returns false if start > end (invalid range).
  • Returns false if any input is invalid.
  • Use options.inclusiveStart and options.inclusiveEnd to control boundary inclusivity.
Parameter Type Description
dateTime string ISO PlainDateTime string to check
start string ISO PlainDateTime string for the start of the range
end string ISO PlainDateTime string for the end of the range

options

Option Type Default
inclusiveStart? boolean
inclusiveEnd? boolean

boolean indicating whether dateTime is between start and end

isBetweenDateTime("2024-02-29T12:00:00", "2024-02-01T00:00:00", "2024-02-28T23:59:59") // false
isBetweenDateTime("2024-02-29T12:00:00", "2024-02-01T00:00:00", "2024-02-29T12:00:00") // true
isBetweenDateTime("2024-02-29T12:00:00", "2024-02-29T12:00:00", "2024-02-28T23:59:59") // false
isBetweenDateTime("2024-02-29T12:00:00", "2024-02-28T23:59:59", "2024-03-01T00:00:00") // true
isBetweenDateTime("invalid", "2024-02-01T00:00:00", "2024-02-28T23:59:59") // false
isBetweenDateTime("2024-02-29T12:00:00", "invalid", "2024-02-28T23:59:59") // false
isBetweenDateTime("2024-02-29T12:00:00", "2024-02-01T00:00:00", "invalid") // false

plain/compare/isBetweenDateTime.ts