# getDateIn

:::caution[Unreleased]
Not in `@northguild/gmt` 1.20.0 on npm yet. It is on `main` and ships in the next release.
:::

## Signature

```ts
getDateIn(units: Partial<Record<"years" | "months" | "weeks" | "days", number>>): string
```

Return the PlainDate after today, 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, months, weeks, days), such as `{ days: 90 }`. A duration string returns "". A time unit returns "", even at zero, as `addDate` does; use `getDateTimeIn` or `getZonedIn` for hours. A fractional amount returns "": use whole days.
- Lengths are unsigned: a negative amount returns "". `getDateAgo` is the way back.
- `{ days: 0 }` is a valid length and gives today, so `getDateIn({ days: 0 })` equals `getToday()`.
- Counts from today in the system time zone, so a server's result changes with its zone; `getZonedIn` names one.
- A missing day clamps to the end of the month: 31 January plus a month is 28 February, or 29 in a leap year.
- Each call reads the clock. To pin the start, use `addDate(getToday(), units)`.
- Examples read the clock at 2027-06-15T12:00:00Z, with the system time zone UTC.

## Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| `units` | `Partial<Record<"years" \| "months" \| "weeks" \| "days", number>>` | unit amounts, such as `{ days: 90 }`; never negative |

## Returns

ISO PlainDate string, or "" for invalid `units`, a negative amount, a time unit, an unavailable system zone or a result outside Temporal's range

## Related types

- [`DateDurationUnit`](/gmt/reference/types/DateDurationUnit)

## Examples

```ts
import { getDateIn } from "@northguild/gmt/plain/get";

getDateIn({ days: 90 }) // "2027-09-13"
```

## Source

[plain/get/getDateIn.ts](https://github.com/northguild/gmt/blob/main/packages/gmt/src/plain/get/getDateIn.ts)
