Hyperlinkv0.8.0-beta.28

DateTime

DateTime.clampconsteffect/DateTime.ts:582
<Min extends DateTime, Max extends DateTime>(options: {
  readonly minimum: Min
  readonly maximum: Max
}): <A extends DateTime>(self: A) => A | Min | Max
<A extends DateTime, Min extends DateTime, Max extends DateTime>(
  self: A,
  options: { readonly minimum: Min; readonly maximum: Max }
): A | Min | Max

Returns a DateTime constrained between a minimum and maximum value.

Details

If the DateTime is before the minimum, the minimum is returned. If the DateTime is after the maximum, the maximum is returned. Otherwise, the original DateTime is returned.

Example (Clamping DateTime values)

import { DateTime } from "effect"

const min = DateTime.makeUnsafe("2024-01-01")
const max = DateTime.makeUnsafe("2024-12-31")
const date = DateTime.makeUnsafe("2025-06-15")

const clamped = DateTime.clamp(date, { minimum: min, maximum: max })
// clamped equals max (2024-12-31)
ordering
export const clamp: {
  <Min extends DateTime, Max extends DateTime>(
    options: { readonly minimum: Min; readonly maximum: Max }
  ): <A extends DateTime>(self: A) => A | Min | Max
  <A extends DateTime, Min extends DateTime, Max extends DateTime>(
    self: A,
    options: { readonly minimum: Min; readonly maximum: Max }
  ): A | Min | Max
} = Internal.clamp