UNPKG

@burglekitt/gmt

Version:

Temporal-based date and time utilities with timezone support and polyfill integration

33 lines (32 loc) 1.79 kB
/** * Return true when `value` falls `offsetDays` days from today, per the * system clock and system timeZone. * * - Subsumes `isToday`/`isYesterday`/`isTomorrow`: `offsetDays: 0` is * "today", `-1` is "yesterday", `1` is "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 use * `isZonedRelativeDay` with an explicit timeZone, or compare against an * explicit reference with `areDatesEqualBy`. * - `offsetDays` must be an integer; non-integer or non-finite values return false. * - Returns false if `value` is 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)` * * @param value ISO PlainDate string * @param offsetDays integer number of days from today (0 = today, -1 = yesterday, 1 = tomorrow) * @returns true if `value` is exactly `offsetDays` days from today, false on invalid input * * @example isRelativeDay("2024-03-15", 0) // true, if today is 2024-03-15 * @example isRelativeDay("2024-03-14", -1) // true, if today is 2024-03-15 * @example isRelativeDay("2024-03-22", 7) // true, if today is 2024-03-15 * @example isRelativeDay("2024-03-15", 1.5) // false (offsetDays must be an integer) * @example isRelativeDay("invalid", 0) // false */ export declare function isRelativeDay(value: string, offsetDays: number): boolean;