isRelativeDay
Signature
Section titled “Signature”isRelativeDay(value: string, offsetDays: number): booleanimport { isRelativeDay } from "@northguild/gmt/plain/compare";Return true when value falls offsetDays days from today, per the
- system clock and system timeZone.
- Subsumes
isToday/isYesterday/isTomorrow:offsetDays: 0is “today”,-1is “yesterday”,1is “tomorrow”, and any other integer offset works the same way. - Compares against
getToday(), so this depends on the system clock and system timeZone. The same call returns different answers on hosts in different timeZones at the same instant — a caller needing determinism (server-side rendering, tests, scheduled jobs) should useisZonedRelativeDaywith an explicit timeZone, or compare against an explicit reference withareDatesEqualBy. offsetDaysmust be an integer; non-integer or non-finite values return false.- Returns false if
valueis invalid or the system timeZone is unavailable. Mapping from date-fns (Decision 5,context/roadmap/issues/J.md): isToday(value)→isRelativeDay(value, 0)isYesterday(value)→isRelativeDay(value, -1)isTomorrow(value)→isRelativeDay(value, 1)
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
value |
string |
ISO PlainDate string |
offsetDays |
number |
integer number of days from today (0 = today, -1 = yesterday, 1 = tomorrow) |
Returns
Section titled “Returns”true if value is exactly offsetDays days from today, false on invalid input
Examples
Section titled “Examples”isRelativeDay("2024-03-15", 0) // true, if today is 2024-03-15isRelativeDay("2024-03-14", -1) // true, if today is 2024-03-15isRelativeDay("2024-03-22", 7) // true, if today is 2024-03-15isRelativeDay("2024-03-15", 1.5) // false (offsetDays must be an integer)isRelativeDay("invalid", 0) // false