<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 | MaxReturns 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)export const 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
}
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)
clamp: {
<function (type parameter) Min in <Min extends DateTime, Max extends DateTime>(options: {
readonly minimum: Min;
readonly maximum: Max;
}): <A extends DateTime>(self: A) => A | Min | Max
Min extends type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime, function (type parameter) Max in <Min extends DateTime, Max extends DateTime>(options: {
readonly minimum: Min;
readonly maximum: Max;
}): <A extends DateTime>(self: A) => A | Min | Max
Max extends type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime>(
options: {
readonly minimum: Min
readonly maximum: Max
}
options: { readonly minimum: Min extends DateTimeminimum: function (type parameter) Min in <Min extends DateTime, Max extends DateTime>(options: {
readonly minimum: Min;
readonly maximum: Max;
}): <A extends DateTime>(self: A) => A | Min | Max
Min; readonly maximum: Max extends DateTimemaximum: function (type parameter) Max in <Min extends DateTime, Max extends DateTime>(options: {
readonly minimum: Min;
readonly maximum: Max;
}): <A extends DateTime>(self: A) => A | Min | Max
Max }
): <function (type parameter) A in <A extends DateTime>(self: A): A | Min | MaxA extends type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime>(self: A extends DateTimeself: function (type parameter) A in <A extends DateTime>(self: A): A | Min | MaxA) => function (type parameter) A in <A extends DateTime>(self: A): A | Min | MaxA | function (type parameter) Min in <Min extends DateTime, Max extends DateTime>(options: {
readonly minimum: Min;
readonly maximum: Max;
}): <A extends DateTime>(self: A) => A | Min | Max
Min | function (type parameter) Max in <Min extends DateTime, Max extends DateTime>(options: {
readonly minimum: Min;
readonly maximum: Max;
}): <A extends DateTime>(self: A) => A | Min | Max
Max
<function (type parameter) A in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
A extends type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime, function (type parameter) Min in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
Min extends type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime, function (type parameter) Max in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
Max extends type DateTime = Utc | ZonedA DateTime represents a point in time. It can optionally have a time zone
associated with it.
Companion namespace containing the public helper types used by DateTime
constructors, parts APIs, formatting, and date/time arithmetic.
DateTime>(
self: A extends DateTimeself: function (type parameter) A in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
A,
options: {
readonly minimum: Min
readonly maximum: Max
}
options: { readonly minimum: Min extends DateTimeminimum: function (type parameter) Min in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
Min; readonly maximum: Max extends DateTimemaximum: function (type parameter) Max in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
Max }
): function (type parameter) A in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
A | function (type parameter) Min in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
Min | function (type parameter) Max in <A extends DateTime, Min extends DateTime, Max extends DateTime>(self: A, options: {
readonly minimum: Min;
readonly maximum: Max;
}): A | Min | Max
Max
} = import InternalInternal.const clamp: {
<
Min extends DateTime.DateTime,
Max extends DateTime.DateTime
>(options: {
readonly minimum: Min
readonly maximum: Max
}): <A extends DateTime.DateTime>(
self: A
) => A | Min | Max
<
A extends DateTime.DateTime,
Min extends DateTime.DateTime,
Max extends DateTime.DateTime
>(
self: A,
options: {
readonly minimum: Min
readonly maximum: Max
}
): A | Min | Max
}
clamp