Skip to content

parseUnitFromDateTime

parseUnitFromDateTime(value: string, unit: "dayOfWeek" | SmallestUnit<"year" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">, optionsArg?: { weekStartsOn?: "monday" | "sunday"; }): string

Return a specific unit extracted from a PlainDateTime string.

  • Extracts “year”, “month”, “day”, “week”, “dayOfWeek”, “hour”, “minute”, “second”, “millisecond”, “microsecond” or “nanosecond” from a PlainDateTime (the last three are Temporal’s 0-999 fields, zero-padded to 3 digits).
  • Returns zero-padded string for most units.
  • unit accepts the singular or plural name of a Temporal unit ("hour" or "hours"), as Temporal does; "dayOfWeek" has no plural.
  • optionsArg must be an object or omitted: null or any other primitive returns "", as Temporal’s GetOptionsObject rejects it.
  • Returns "" for invalid input.
  • The "year" unit is written as Temporal writes a year: four digits ("2024", "0005"), or a sign and six digits outside 0000–9999 ("+010000", "-000005").
ParameterTypeDescription
valuestringISO PlainDateTime string
unit"dayOfWeek" | SmallestUnit<"year" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond" | "microsecond" | "nanosecond">unit to extract from the datetime

optionsArg

How weeks are numbered

OptionTypeDefaultDescription
weekStartsOn?"monday" | "sunday""monday"The first day of the week, which sets how the "week" unit is numbered. "monday" gives the ISO 8601 week number, where week 1 holds the year’s first Thursday; "sunday" gives the UTS #35 week number with a Sunday first day and one minimal day, where week 1 holds 1 January. Any other value returns "", whatever the unit.

string representation of the requested unit or "" on invalid input

import { parseUnitFromDateTime } from "@northguild/gmt/plain/parse";
parseUnitFromDateTime("2024-03-15T14:30:45.123", "year") // "2024"
output 

plain/parse/parseUnitFromDateTime.ts