Skip to content

startOfDateTime

startOfDateTime(value: string, unit: SmallestUnit<DateTimeUnit>, optionsArg?: { weekStartsOn?: "monday" | "sunday"; fractionalSecondDigits?: FractionalDigit; }): string

Return the start of the specified date-time unit for a given ISO 8601 datetime string.

  • unit accepts the singular or plural name ("month" or "months"), as Temporal does.
  • Returns "" for invalid inputs.
ParameterTypeDescription
valuestringISO 8601 datetime string
unitSmallestUnit<DateTimeUnit>date or time unit, singular or plural, to specify the unit for the start

optionsArg

How the week is defined and how the result is written

OptionTypeDefaultDescription
weekStartsOn?"monday" | "sunday""monday"The first day of the week, which sets where a "week" unit starts. "monday" is the ISO 8601 week, Monday to Sunday; "sunday" runs Sunday to Saturday. Any other value returns "", whatever the unit.
fractionalSecondDigits?0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | "auto" | 8 | 9 (FractionalDigit)The digits unit names: 3 for "millisecond", 6 for "microsecond", 9 for "nanosecond" and 0 for any coarser unit.The number of fractional-second digits the result is written with, 0 to 9, or "auto" to drop trailing zeros. Fewer digits than unit names truncate, as Temporal’s toString does.

ISO 8601 string representing the start of the specified unit, or "" on invalid input

import { startOfDateTime } from "@northguild/gmt/plain/calculate";
startOfDateTime("2024-02-29T12:34:56", "month") // "2024-02-01T00:00:00"
output 

plain/calculate/startOfDateTime.ts