Skip to content

isBetweenDate

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

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

  • Uses Temporal.PlainDate.compare to compare dates.
  • 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
date string ISO PlainDate string to check
start string ISO PlainDate string for the start of the range
end string ISO PlainDate string for the end of the range

options

Option Type Default
inclusiveStart? boolean
inclusiveEnd? boolean

boolean indicating whether date is between start and end

isBetweenDate("2024-02-29", "2024-02-01", "2024-02-28") // false
isBetweenDate("2024-02-29", "2024-02-01", "2024-02-29") // true
isBetweenDate("2024-02-29", "2024-02-29", "2024-02-28") // false
isBetweenDate("2024-02-29", "2024-02-28", "2024-03-01") // true
isBetweenDate("invalid", "2024-02-01", "2024-02-28") // false
isBetweenDate("2024-02-29", "invalid", "2024-02-28") // false
isBetweenDate("2024-02-29", "2024-02-01", "invalid") // false

plain/compare/isBetweenDate.ts