Skip to content

isWeekend

Checks whether a date falls on a weekend day.

By default, weekend days are Saturday and Sunday (Western convention). Pass a custom weekendDays tuple to adapt to other calendars (e.g. [5, 6] for Friday/Saturday in many Middle-Eastern countries).

Returns false if the input is invalid.

Available since v2.0.0

import { isWeekend } from '@helpers4/date';
isWeekend(date: DateLike, weekendDays: readonly WeekDay[]): boolean
ParameterTypeDescription
dateDateLikeThe date to check
weekendDaysreadonly WeekDay[]Override which days count as weekend (default: [0, 6])

boolean — true if the date’s day-of-week is in weekendDays

isWeekend('2025-01-18') // => true  (Saturday)
isWeekend('2025-01-19') // => true  (Sunday)
isWeekend('2025-01-20') // => false (Monday)

// Middle-Eastern weekend (Friday + Saturday)
isWeekend('2025-01-17', [WeekDays.Friday, WeekDays.Saturday]) // => true
isWeekend('2025-01-19', [WeekDays.Friday, WeekDays.Saturday]) // => false

A value that can be converted to a Date.

  • Date — used as-is (validated for Invalid Date)
  • number — treated as a timestamp (seconds or milliseconds, auto-detected); 0 is treated as invalid and produces null in ensureDate
  • string — parsed via new Date(string)
  • Temporal.Instant | Temporal.ZonedDateTime — read via their epochMilliseconds property
type DateLike = Date | number | string | Temporal.Instant | Temporal.ZonedDateTime

A day-of-week number following the JavaScript Date.getDay() convention: 0 = Sunday, 1 = Monday, … 6 = Saturday.

Prefer using WeekDays named constants for readability: WeekDays.Monday instead of 1.

type WeekDay = (typeof WeekDays)[keyof typeof WeekDays]

View source on GitHub