Skip to content

getLocaleZonedStartOfWeek

getLocaleZonedStartOfWeek(value: string, locale: string | string[], optionsArg?: { fractionalSecondDigits?: FractionalDigit; }): string

Return the start of the week containing value, using locale’s first day of week (e.g. en-US: Sunday, fr-FR: Monday).

  • Resolves the locale’s first day of week via Intl.Locale.prototype.weekInfo.
  • Falls back to Monday if the runtime’s weekInfo data doesn’t resolve a first day for the locale.
  • Returns the real start of the local week containing value in its own zone — the same kind of bucket floorToZone uses — so the result is never after value. A week whose first midnight was skipped starts at its first real instant.
  • Distinct from startOfZoned(value, "week", { weekStartsOn }), which takes an explicit ISO-biased weekStartsOn option instead of deriving it from a locale.
  • Returns "" if value is invalid or locale is not a well-formed BCP 47 tag (ECMA-402 IsWellFormedLanguageTag). A well-formed tag with no matching locale data is not an error: it falls back to the host’s default locale, as ECMA-402 ResolveLocale requires.
ParameterTypeDescription
valuestringzoned ISO 8601 datetime string
localestring | string[]BCP 47 locale tag (e.g. “en-US”, “fr-FR”), or a preference list of tags (ECMA-402; the first with locale data is read). Required: omitted, or an empty list (which ECMA-402 would resolve to the host default), returns ""

optionsArg

optional setting for the precision of the output string

OptionTypeDefaultDescription
fractionalSecondDigits?0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | "auto" | 8 | 9 (FractionalDigit)0The number of fractional-second digits the result is written with, 0 to 9, or "auto" to drop trailing zeros. A start has no sub-second part, so any digits written are zeros.

zoned ISO 8601 string for the start of value’s locale-relative week, or "" on invalid input

import { getLocaleZonedStartOfWeek } from "@northguild/gmt/zoned/calculate";
getLocaleZonedStartOfWeek("2024-02-29T12:00:00+00:00[UTC]", "en-US") // "2024-02-25T00:00:00+00:00[UTC]" (Sunday)
output 

zoned/calculate/getLocaleZonedStartOfWeek.ts