Skip to content

getDateTimeAgo

getDateTimeAgo(units: Partial<Record<keyof DurationLike, number>>): string

Return the PlainDateTime before now, as an ISO string, counted from the current time.

  • Reads the clock once, after units is checked.
  • units is an object of unit amounts (years to nanoseconds), such as { days: 90 }. A duration string returns "". A fractional amount returns "": write { hours: 36 } for a day and a half.
  • Lengths are unsigned: a negative amount returns "". getDateTimeIn is the other direction.
  • { days: 0 } is a valid length and gives now.
  • Counts on the wall clock of the system time zone. It knows nothing of daylight saving, so the result can name a time that does not exist there; getZonedAgo gives a real instant.
  • Whole seconds, floored. The sub-second route is subtractDateTime(getNow(), units).
  • A missing day clamps to the end of the month: 31 March minus a month is 28 February, or 29 in a leap year.
  • Each call reads the clock. To pin the start, use subtractDateTime(getNow(), units).
  • Examples read the clock at 2027-06-15T12:00:00Z, with the system time zone UTC.
ParameterTypeDescription
unitsPartial<Record<keyof DurationLike, number>>unit amounts, such as { days: 90 }; never negative

ISO PlainDateTime string in whole seconds, or "" for invalid units, a negative amount, an unavailable system zone or a result outside Temporal’s range

import { getDateTimeAgo } from "@northguild/gmt/plain/get";
getDateTimeAgo({ days: 90 }) // "2027-03-17T12:00:00"
output 

plain/get/getDateTimeAgo.ts

Code examples: MIT-0. Packages: MIT. Third-party data and components: their own licences, credited where they appear. Everything else:© 2026 NorthGuild, all rights reserved.