Date

Functions for interacting with JavaScript Dates.

compare

RES
let compare: (t, t) => Ordering.t

compare(date1, date2) compares two dates chronologically, returns an Ordering.t value.

Examples

RES
Date.compare(Date.fromString("2023-01-01"), Date.fromString("2023-01-01")) == Ordering.equal Date.compare(Date.fromString("2023-01-01"), Date.fromString("2023-01-02")) == Ordering.less Date.compare(Date.fromString("2023-01-02"), Date.fromString("2023-01-01")) == Ordering.greater

equal

RES
let equal: (t, t) => bool

equal(date1, date2) checks if two dates represent the same point in time.

Examples

RES
Date.equal(Date.fromString("2023-01-01"), Date.fromString("2023-01-01")) == true Date.equal(Date.fromString("2023-01-01"), Date.fromString("2023-01-02")) == false

fromString

RES
let fromString: string => t

fromString(dateTimeString)

Creates a date object from given date time string. The string has to be in the ISO 8601 format YYYY-MM-DDTHH:mm:ss.sssZ (https://tc39.es/ecma262/#sec-date-time-string-format).

Invalid date time strings will create invalid dates. You can use the result like any valid date, but many functions like toString will return "Invalid Date" or functions like Date.getTime will return NaN.

Examples

RES
Date.fromString("2023") // 2023-01-01T00:00:00.000Z Date.fromString("2023-02-20") // 2023-02-20T00:00:00.000Z Date.fromString("2023-02-20T16:40:00.00Z") // 2023-02-20T16:40:00.000Z Date.fromString("") // Invalid Date Date.fromString("")->Date.getTime // NaN

fromTime

RES
let fromTime: msSinceEpoch => t

fromTime(msSinceEpoch)

Creates a date object from the given time in milliseconds since / until UNIX epoch (January 1, 1970 00:00:00 UTC). Positive numbers create dates after epoch, negative numbers create dates before epoch.

Examples

RES
Date.fromTime(0.0) // 1970-01-01T00:00:00.000Z Date.fromTime(-86_400_000.0) // 1969-12-31T00:00:00.000Z Date.fromTime(86_400_000.0) // 1970-01-02T00:00:00.000Z

getDate

RES
let getDate: t => int

getDate(date)

Returns the date (day of month) of a given date (according to local time).

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.getDate // 20

getDay

RES
let getDay: t => int

getDay(date)

Returns the day of week of a given date (according to local time). 0 = Sunday, 1 = Monday, ... 6 = Saturday

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.getDay // 1

getFullYear

RES
let getFullYear: t => int

getFullYear(date)

Returns the year of a given date (according to local time).

Examples

RES
Date.fromString("2023-02-20")->Date.getFullYear // 2023

getHours

RES
let getHours: t => int

getHours(date)

Returns the hours of a given date (according to local time).

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.getHours // 16

getMilliseconds

RES
let getMilliseconds: t => int

getMilliseconds(date)

Returns the milliseconds of a given date (according to local time).

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.getMilliseconds // 0

getMinutes

RES
let getMinutes: t => int

getMinutes(date)

Returns the minutes of a given date (according to local time).

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.getMinutes // 40

getMonth

RES
let getMonth: t => int

getMonth(date)

Returns the month (0-indexed) of a given date (according to local time).

Examples

RES
Date.fromString("2023-01-01")->Date.getMonth // 0

getSeconds

RES
let getSeconds: t => int

getSeconds(date)

Returns the seconds of a given date (according to local time).

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.getSeconds // 0

getTime

RES
let getTime: t => msSinceEpoch

getTime(date)

Returns the time, in milliseconds, between UNIX epoch (January 1, 1970 00:00:00 UTC) and the current date time. Invalid dates will return NaN. Dates before epoch will return negative numbers.

Examples

RES
Date.fromString("2023-02-20")->Date.getTime // 1676851200000

getTimezoneOffset

RES
let getTimezoneOffset: t => int

getTimezoneOffset(date)

Returns the time in minutes between the UTC time and the locale time. The timezone of the given date doesn't matter.

Examples

RES
Date.fromString("2023-01-01")->Date.getTimezoneOffset // -60 with local time zone = Europe/Berlin Date.fromString("2023-06-01")->Date.getTimezoneOffset // -120 with local time zone = Europe/Berlin

getUTCDate

RES
let getUTCDate: t => int

getUTCDate(date)

Returns the date (day of month) of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCDate // 31

getUTCDay

RES
let getUTCDay: t => int

getUTCDay(date)

Returns the day (day of week) of a given date (according to UTC time). 0 = Sunday, 1 = Monday, ... 6 = Saturday

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCDay // 6

getUTCFullYear

RES
let getUTCFullYear: t => int

getUTCFullYear(date)

Returns the year of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCFullYear // 2022

getUTCHours

RES
let getUTCHours: t => int

getUTCHours(date)

Returns the hours of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCHours // 23

getUTCMilliseconds

RES
let getUTCMilliseconds: t => int

getUTCMilliseconds(date)

Returns the milliseconds of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCMilliseconds // 0

getUTCMinutes

RES
let getUTCMinutes: t => int

getUTCMinutes(date)

Returns the minutes of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCMinutes // 0

getUTCMonth

RES
let getUTCMonth: t => int

getUTCMonth(date)

Returns the month of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCMonth // 11

getUTCSeconds

RES
let getUTCSeconds: t => int

getUTCSeconds(date)

Returns the seconds of a given date (according to UTC time).

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCSeconds // 0

ignore

RES
let ignore: t => unit

ignore(date) ignores the provided date and returns unit.

This helper is useful when you want to discard a value (for example, the result of an operation with side effects) without having to store or process it further.

localeOptions

RES
type localeOptions = { dateStyle?: [#full | #long | #medium | #short], timeStyle?: [#full | #long | #medium | #short], weekday?: [#long | #narrow | #short], era?: [#long | #narrow | #short], year?: [#"2-digit" | #numeric], month?: [ | #"2-digit" | #long | #narrow | #numeric | #short ], day?: [#"2-digit" | #numeric], hour?: [#"2-digit" | #numeric], minute?: [#"2-digit" | #numeric], second?: [#"2-digit" | #numeric], timeZoneName?: [#long | #short], }

A type representing date time format options.

Note: There are some properties missing:

  • fractionalSecondDigits

  • dayPeriod

  • calendar

  • numberingSystem

  • localeMatcher

  • timeZone

  • hour12

  • hourCycle

  • formatMatcher

See full spec at https://tc39.es/ecma402/#datetimeformat-objects

make

RES
let make: unit => t

make()

Creates a date object with the current date time as value.

Examples

RES
Date.make()

makeWithYM

RES
let makeWithYM: (~year: int, ~month: int) => t

Creates a date object with the given year and month. Be aware of using a value for year < 100, because it behaves inconsistent (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years). Months are 0-indexed (0 = January, 11 = December). Values, which are out of range, will be carried over to the next bigger unit (s. example).

Examples

RES
Date.makeWithYM(~year=2023, ~month=0) // 2023-01-01T00:00:00.000Z Date.makeWithYM(~year=2023, ~month=11) // 2023-12-01T00:00:00.000Z Date.makeWithYM(~year=2023, ~month=12) // 2024-01-01T00:00:00.000Z Date.makeWithYM(~year=2023, ~month=-1) // 2022-12-01T00:00:00.000Z // Note: The output depends on your local time zone. // In nodejs you can change it by using the TZ env (`export TZ='Europe/London' && node index.bs.js`)

makeWithYMD

RES
let makeWithYMD: (~year: int, ~month: int, ~day: int) => t

Creates a date object with the given year, month and date (day of month). Be aware of using a value for year < 100, because it behaves inconsistent (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years). Months are 0-indexed (0 = January, 11 = December). Values, which are out of range, will be carried over to the next bigger unit (s. example).

Examples

RES
Date.makeWithYMD(~year=2023, ~month=1, ~day=20) // 2023-02-20T00:00:00.000Z Date.makeWithYMD(~year=2023, ~month=1, ~day=-1) // 2022-11-29T00:00:00.000Z Date.makeWithYMD(~year=2023, ~month=1, ~day=29) // 2023-03-01T00:00:00.000Z

makeWithYMDH

RES
let makeWithYMDH: (~year: int, ~month: int, ~day: int, ~hours: int) => t

Creates a date object with the given year, month, date (day of month) and hours. Be aware of using a value for year < 100, because it behaves inconsistent (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years). Months are 0-indexed (0 = January, 11 = December). Values, which are out of range, will be carried over to the next bigger unit (s. example).

Examples

RES
Date.makeWithYMDH(~year=2023, ~month=1, ~day=20, ~hours=16) // 2023-02-20T16:00:00.000Z Date.makeWithYMDH(~year=2023, ~month=1, ~day=20, ~hours=24) // 2023-02-21T00:00:00.000Z Date.makeWithYMDH(~year=2023, ~month=1, ~day=20, ~hours=-1) // 2023-02-19T23:00:00.000Z // Note: The output depends on your local time zone. // In nodejs you can change it by using the TZ env (`export TZ='Europe/London' && node index.bs.js`)

makeWithYMDHM

RES
let makeWithYMDHM: ( ~year: int, ~month: int, ~day: int, ~hours: int, ~minutes: int, ) => t

Creates a date object with the given year, month, date (day of month), hours and minutes. Be aware of using a value for year < 100, because it behaves inconsistent (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years). Months are 0-indexed (0 = January, 11 = December). Values, which are out of range, will be carried over to the next bigger unit (s. example).

Examples

RES
Date.makeWithYMDHM(~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40) // 2023-02-20T16:40:00.000Z Date.makeWithYMDHM(~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=60) // 2023-02-20T17:00:00.000Z Date.makeWithYMDHM(~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=-1) // 2023-02-20T15:59:00.000Z // Note: The output depends on your local time zone. // In nodejs you can change it by using the TZ env (`export TZ='Europe/London' && node index.bs.js`)

makeWithYMDHMS

RES
let makeWithYMDHMS: ( ~year: int, ~month: int, ~day: int, ~hours: int, ~minutes: int, ~seconds: int, ) => t

Creates a date object with the given year, month, date (day of month), hours, minutes and seconds. Be aware of using a value for year < 100, because it behaves inconsistent (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years). Months are 0-indexed (0 = January, 11 = December). Values, which are out of range, will be carried over to the next bigger unit (s. example).

Examples

RES
Date.makeWithYMDHMS(~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40, ~seconds=0) // 2023-02-20T16:40:00.000Z Date.makeWithYMDHMS(~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40, ~seconds=60) // 2023-02-20T16:41:00.000Z Date.makeWithYMDHMS(~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40, ~seconds=-1) // 2023-02-20T16:39:59.000Z // Note: The output depends on your local time zone. // In nodejs you can change it by using the TZ env (`export TZ='Europe/London' && node index.bs.js`)

makeWithYMDHMSM

RES
let makeWithYMDHMSM: ( ~year: int, ~month: int, ~day: int, ~hours: int, ~minutes: int, ~seconds: int, ~milliseconds: int, ) => t

Creates a date object with the given year, month, date (day of month), hours, minutes, seconds and milliseconds. Be aware of using a value for year < 100, because it behaves inconsistent (see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years). Months are 0-indexed (0 = January, 11 = December). Values, which are out of range, will be carried over to the next bigger unit (s. example).

Examples

RES
Date.makeWithYMDHMSM( ~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40, ~seconds=0, ~milliseconds=0, ) // 2023-02-20T16:40:00.000Z Date.makeWithYMDHMSM( ~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40, ~seconds=0, ~milliseconds=1000, ) // 2023-02-20T16:40:01.000Z Date.makeWithYMDHMSM( ~year=2023, ~month=1, ~day=20, ~hours=16, ~minutes=40, ~seconds=0, ~milliseconds=-1, ) // 2023-02-20T16:39:59.999Z // Note: The output depends on your local time zone. // In nodejs you can change it by using the TZ env (`export TZ='Europe/London' && node index.bs.js`)

msSinceEpoch

RES
type msSinceEpoch = float

Time, in milliseconds, since / until the UNIX epoch (January 1, 1970 00:00:00 UTC). Positive numbers represent dates after, negative numbers dates before epoch.

now

RES
let now: unit => msSinceEpoch

now()

Returns the time, in milliseconds, between UNIX epoch (January 1, 1970 00:00:00 UTC) and the current date time.

setDate

RES
let setDate: (t, int) => unit

setDate(date, day)

Sets the date (day of month) of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setDate(1)

setFullYear

RES
let setFullYear: (t, int) => unit

setFullYear(date, year)

Sets the year of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setFullYear(2024)

setFullYearM

RES
let setFullYearM: (t, ~year: int, ~month: int) => unit

setFullYearM(date, ~year, ~month)

Sets the year and month of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setFullYearM(~year=2024, ~month=0)

setFullYearMD

RES
let setFullYearMD: (t, ~year: int, ~month: int, ~day: int) => unit

setFullYearMD(date, ~year, ~month, ~day)

Sets the year, month and date (day of month) of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setFullYearMD(~year=2024, ~month=0, ~day=1)

setHours

RES
let setHours: (t, int) => unit

setHours(date, hours)

Sets the hours of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setHours(0)

setHoursM

RES
let setHoursM: (t, ~hours: int, ~minutes: int) => unit

setHoursM(date, ~hours, ~minutes)

Sets the hours and minutes of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setHoursM(~hours=0, ~minutes=0)

setHoursMS

RES
let setHoursMS: (t, ~hours: int, ~minutes: int, ~seconds: int) => unit

setHoursMS(date, ~hours, ~minutes, ~seconds)

Sets the hours, minutes and seconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setHoursMS(~hours=0, ~minutes=0, ~seconds=0)

setHoursMSMs

RES
let setHoursMSMs: ( t, ~hours: int, ~minutes: int, ~seconds: int, ~milliseconds: int, ) => unit

setHoursMSMs(date, ~hours, ~minutes, ~seconds, ~milliseconds)

Sets the hours, minutes, seconds and milliseconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setHoursMSMs( ~hours=0, ~minutes=0, ~seconds=0, ~milliseconds=0, )

setMilliseconds

RES
let setMilliseconds: (t, int) => unit

setMilliseconds(date, milliseconds)

Sets the milliseconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setMilliseconds(0)

setMinutes

RES
let setMinutes: (t, int) => unit

setMinutes(date, minutes)

Sets the minutes of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setMinutes(0)

setMinutesS

RES
let setMinutesS: (t, ~minutes: int, ~seconds: int) => unit

setMinutesS(date, ~minutes, ~seconds)

Sets the minutes and seconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setMinutesS(~minutes=0, ~seconds=0)

setMinutesSMs

RES
let setMinutesSMs: ( t, ~minutes: int, ~seconds: int, ~milliseconds: int, ) => unit

setMinutesSMs(date, ~minutes, ~seconds, ~milliseconds)

Sets the minutes, seconds and milliseconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setMinutesSMs( ~minutes=0, ~seconds=0, ~milliseconds=0, )

setMonth

RES
let setMonth: (t, int) => unit

setMonth(date, month)

Sets the month of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setMonth(0)

setSeconds

RES
let setSeconds: (t, int) => unit

setSeconds(date, seconds)

Sets the seconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setSeconds(0)

setSecondsMs

RES
let setSecondsMs: (t, ~seconds: int, ~milliseconds: int) => unit

setSecondsMs(date, ~seconds, ~milliseconds)

Sets the seconds and milliseconds of a date (according to local time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setSecondsMs(~seconds=0, ~milliseconds=0)

setUTCDate

RES
let setUTCDate: (t, int) => unit

setDate(date, day)

Sets the date (day of month) of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCDate(1)

setUTCFullYear

RES
let setUTCFullYear: (t, int) => unit

setUTCFullYear(date, year)

Sets the year of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCFullYear(2024)

setUTCFullYearM

RES
let setUTCFullYearM: (t, ~year: int, ~month: int) => unit

setUTCFullYearM(date, ~year, ~month)

Sets the year and month of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCFullYearM(~year=2024, ~month=0)

setUTCFullYearMD

RES
let setUTCFullYearMD: (t, ~year: int, ~month: int, ~day: int) => unit

setUTCFullYearMD(date, ~year, ~month, ~day)

Sets the year, month and date (day of month) of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCFullYearMD(~year=2024, ~month=0, ~day=1)

setUTCHours

RES
let setUTCHours: (t, int) => unit

setUTCHours(date, hours)

Sets the hours of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCHours(0)

setUTCHoursM

RES
let setUTCHoursM: (t, ~hours: int, ~minutes: int) => unit

setHoursM(date, ~hours, ~minutes)

Sets the hours and minutes of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursM(~hours=0, ~minutes=0)

setUTCHoursMS

RES
let setUTCHoursMS: (t, ~hours: int, ~minutes: int, ~seconds: int) => unit

setUTCHoursMS(date, ~hours, ~minutes, ~seconds)

Sets the hours, minutes and seconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursMS(~hours=0, ~minutes=0, ~seconds=0)

setUTCHoursMSMs

RES
let setUTCHoursMSMs: ( t, ~hours: int, ~minutes: int, ~seconds: int, ~milliseconds: int, ) => unit

setUTCHoursMSMs(date, ~hours, ~minutes, ~seconds, ~milliseconds)

Sets the hours, minutes, seconds and milliseconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursMSMs( ~hours=0, ~minutes=0, ~seconds=0, ~milliseconds=0, )

setUTCMilliseconds

RES
let setUTCMilliseconds: (t, int) => unit

setUTCMilliseconds(date, milliseconds)

Sets the milliseconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCMilliseconds(0)

setUTCMinutes

RES
let setUTCMinutes: (t, int) => unit

setUTCMinutes(date, minutes)

Sets the minutes of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutes(0)

setUTCMinutesS

RES
let setUTCMinutesS: (t, ~minutes: int, ~seconds: int) => unit

setUTCMinutesS(date, ~minutes, ~seconds)

Sets the minutes and seconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutesS(~minutes=0, ~seconds=0)

setUTCMinutesSMs

RES
let setUTCMinutesSMs: ( t, ~minutes: int, ~seconds: int, ~milliseconds: int, ) => unit

setUTCMinutesSMs(date, ~minutes, ~seconds, ~milliseconds)

Sets the minutes, seconds and milliseconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutesSMs( ~minutes=0, ~seconds=0, ~milliseconds=0, )

setUTCMonth

RES
let setUTCMonth: (t, int) => unit

setUTCMonth(date, month)

Sets the month of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCMonth(0)

setUTCSeconds

RES
let setUTCSeconds: (t, int) => unit

setUTCSeconds(date, seconds)

Sets the seconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCSeconds(0)

setUTCSecondsMs

RES
let setUTCSecondsMs: (t, ~seconds: int, ~milliseconds: int) => unit

setUTCSecondsMs(date, ~seconds, ~milliseconds)

Sets the seconds and milliseconds of a date (according to UTC time). Beware this will mutate the date.

Examples

RES
Date.fromString("2023-02-20T16:40:00.00")->Date.setUTCSecondsMs(~seconds=0, ~milliseconds=0)

t

RES
type t

A type representing a JavaScript date.

toDateString

RES
let toDateString: t => string

toDateString(date)

Converts a JavaScript date to a standard date string. The date will be mapped to the current time zone. If you want to convert it to a localized string, use Date.toLocaleDateString instead.

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.toDateString->Console.log // Sun Jan 01 2023 Date.fromString("2023-01-01T00:00:00.00+08:00")->Date.toDateString->Console.log // Sat Dec 31 2022

toISOString

RES
let toISOString: t => string

toISOString(date)

Converts a JavaScript date to a ISO 8601 string (YYYY-MM-DDTHH:mm:ss.sssZ). The date will be mapped to the UTC time.

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+00:00")->Date.toISOString->Console.log // 2023-01-01T00:00:00.000Z Date.fromString("2023-01-01T00:00:00.00+08:00")->Date.toISOString->Console.log // 2022-12-31T16:00:00.000Z

toJSON

RES
let toJSON: t => option<string>

toJSON(date)

Converts a JavaScript date to a string. If the date is valid, the function will return the same result as Date.toISOString. Invalid dates will return None.

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+00:00")->Date.toJSON // Some("2023-01-01T00:00:00.000Z") Date.fromString("")->Date.toJSON // None

toLocaleDateString

RES
let toLocaleDateString: t => string

toLocaleDateString(date)

Converts a JavaScript date to a localized date string. It will use the current locale.

Examples

RES
Date.make()->Date.toLocaleDateString->Console.log // 2/19/2023

toLocaleDateStringWithLocale

RES
let toLocaleDateStringWithLocale: (t, string) => string

toLocaleDateStringWithLocale(date, locale)

Converts a JavaScript date to a localized date string. It will use the specified locale.

Examples

RES
Date.make()->Date.toLocaleDateStringWithLocale("en-US")->Console.log // 2/19/2023

toLocaleDateStringWithLocaleAndOptions

RES
let toLocaleDateStringWithLocaleAndOptions: (t, string, localeOptions) => string

toLocaleDateStringWithLocaleAndOptions(date, locale, options)

Converts a JavaScript date to a localized date string. It will use the specified locale and formatting options.

Examples

RES
Date.make()->Date.toLocaleDateStringWithLocaleAndOptions("en-US", {dateStyle: #long})->Console.log // February 19, 2023 Date.make() ->Date.toLocaleDateStringWithLocaleAndOptions("de", {hour: #"2-digit", minute: #"2-digit"}) ->Console.log // 19.2.2023, 15:40 Date.make()->Date.toLocaleDateStringWithLocaleAndOptions("de", {year: #numeric})->Console.log // 2023

toLocaleString

RES
let toLocaleString: t => string

toLocaleString(date)

Converts a JavaScript date to a localized date-time string. It will use the current locale.

Examples

RES
Date.make()->Date.toLocaleString->Console.log // 2/19/2023, 3:40:00 PM

toLocaleStringWithLocale

RES
let toLocaleStringWithLocale: (t, string) => string

toLocaleStringWithLocale(date, locale)

Converts a JavaScript date to a localized date-time string. It will use the specified locale.

Examples

RES
Date.make()->Date.toLocaleStringWithLocale("en-US")->Console.log // 2/19/2023, 3:40:00 PM

toLocaleStringWithLocaleAndOptions

RES
let toLocaleStringWithLocaleAndOptions: (t, string, localeOptions) => string

toLocaleStringWithLocaleAndOptions(date, locale, options)

Converts a JavaScript date to a localized date-time string. It will use the specified locale and formatting options.

Examples

RES
Date.make() ->Date.toLocaleStringWithLocaleAndOptions("en", {dateStyle: #short, timeStyle: #short}) ->Console.log // 2/19/23, 3:40 PM Date.make() ->Date.toLocaleStringWithLocaleAndOptions( "en", { era: #long, year: #numeric, month: #"2-digit", day: #"2-digit", hour: #numeric, timeZoneName: #short, }, ) ->Console.log // 02/19/2023 Anno Domini, 3 PM GMT+1

toLocaleTimeString

RES
let toLocaleTimeString: t => string

toLocaleTimeString(date)

Converts a JavaScript date to a localized time string. It will use the current locale.

Examples

RES
Date.make()->Date.toLocaleTimeString->Console.log // 3:40:00 PM

toLocaleTimeStringWithLocale

RES
let toLocaleTimeStringWithLocale: (t, string) => string

toLocaleTimeStringWithLocale(date, locale)

Converts a JavaScript date to a localized time string. It will use the specified locale.

Examples

RES
Date.make()->Date.toLocaleTimeStringWithLocale("en-US")->Console.log // 3:40:00 PM

toLocaleTimeStringWithLocaleAndOptions

RES
let toLocaleTimeStringWithLocaleAndOptions: (t, string, localeOptions) => string

toLocaleTimeStringWithLocaleAndOptions(date, locale, options)

Converts a JavaScript date to a localized time string. It will use the specified locale and formatting options.

Examples

RES
Date.make()->Date.toLocaleTimeStringWithLocaleAndOptions("en-US", {timeStyle: #long})->Console.log // 3:40:00 PM GMT+1 Date.make() ->Date.toLocaleTimeStringWithLocaleAndOptions("de", {hour: #"2-digit", minute: #"2-digit"}) ->Console.log // 15:40

toString

RES
let toString: t => string

toString(date)

Converts a JavaScript date to a standard date time string. The date will be mapped to the current time zone. If you want to convert it to a localized string, use Date.toLocaleString instead.

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.toString->Console.log // Sun Jan 01 2023 00:00:00 GMT+0100 (Central European Standard Time) Date.fromString("2023-06-01T00:00:00.00+01:00")->Date.toString->Console.log // Thu Jun 01 2023 01:00:00 GMT+0200 (Central European Summer Time)

toTimeString

RES
let toTimeString: t => string

toTimeString(date)

Converts a JavaScript date to a standard time string. The date will be mapped to the current time zone. If you want to convert it to a localized string, use Date.toLocaleStimeString instead.

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+01:00")->Date.toTimeString->Console.log // 00:00:00 GMT+0100 (Central European Standard Time) Date.fromString("2023-01-01T00:00:00.00+08:00")->Date.toTimeString->Console.log // 17:00:00 GMT+0100 (Central European Standard Time)

toUTCString

RES
let toUTCString: t => string

toUTCString(date)

Converts a JavaScript date to date time string. The date will be mapped to the UTC time.

Examples

RES
Date.fromString("2023-01-01T00:00:00.00+00:00")->Date.toUTCString->Console.log // Sun, 01 Jan 2023 00:00:00 GMT Date.fromString("2023-01-01T00:00:00.00+08:00")->Date.toUTCString->Console.log // Sat, 31 Dec 2022 16:00:00 GMT