Date
Functions for interacting with JavaScript Dates.
t
type t = Js.Date.tA type representing a JavaScript date.
msSinceEpoch
type msSinceEpoch = floatTime, in milliseconds, since / until the UNIX epoch (January 1, 1970 00:00:00 UTC). Positive numbers represent dates after, negative numbers dates before epoch.
localeOptions
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
let make: unit => tfromString
let fromString: string => tfromString(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
RESCRIPTDate.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
let fromTime: msSinceEpoch => tfromTime(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
RESCRIPTDate.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
makeWithYM
let makeWithYM: (~year: int, ~month: int) => tCreates 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
RESCRIPTDate.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
let makeWithYMD: (~year: int, ~month: int, ~date: int) => tCreates 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
RESCRIPTDate.makeWithYMD(~year=2023, ~month=1, ~date=20)
// 2023-02-20T00:00:00.000Z
Date.makeWithYMD(~year=2023, ~month=1, ~date=-1)
// 2022-11-29T00:00:00.000Z
Date.makeWithYMD(~year=2023, ~month=1, ~date=29)
// 2023-03-01T00:00:00.000Z
makeWithYMDH
let makeWithYMDH: (~year: int, ~month: int, ~date: int, ~hours: int) => tCreates 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
RESCRIPTDate.makeWithYMDH(~year=2023, ~month=1, ~date=20, ~hours=16)
// 2023-02-20T16:00:00.000Z
Date.makeWithYMDH(~year=2023, ~month=1, ~date=20, ~hours=24)
// 2023-02-21T00:00:00.000Z
Date.makeWithYMDH(~year=2023, ~month=1, ~date=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
let makeWithYMDHM: (
~year: int,
~month: int,
~date: int,
~hours: int,
~minutes: int,
) => tCreates 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
RESCRIPTDate.makeWithYMDHM(~year=2023, ~month=1, ~date=20, ~hours=16, ~minutes=40)
// 2023-02-20T16:40:00.000Z
Date.makeWithYMDHM(~year=2023, ~month=1, ~date=20, ~hours=16, ~minutes=60)
// 2023-02-20T17:00:00.000Z
Date.makeWithYMDHM(~year=2023, ~month=1, ~date=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
let makeWithYMDHMS: (
~year: int,
~month: int,
~date: int,
~hours: int,
~minutes: int,
~seconds: int,
) => tCreates 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
RESCRIPTDate.makeWithYMDHMS(~year=2023, ~month=1, ~date=20, ~hours=16, ~minutes=40, ~seconds=0)
// 2023-02-20T16:40:00.000Z
Date.makeWithYMDHMS(~year=2023, ~month=1, ~date=20, ~hours=16, ~minutes=40, ~seconds=60)
// 2023-02-20T16:41:00.000Z
Date.makeWithYMDHMS(~year=2023, ~month=1, ~date=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
let makeWithYMDHMSM: (
~year: int,
~month: int,
~date: int,
~hours: int,
~minutes: int,
~seconds: int,
~milliseconds: int,
) => tCreates 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
RESCRIPTDate.makeWithYMDHMSM(~year=2023, ~month=1, ~date=20, ~hours=16, ~minutes=40, ~seconds=0, ~milliseconds=0)
// 2023-02-20T16:40:00.000Z
Date.makeWithYMDHMSM(~year=2023, ~month=1, ~date=20, ~hours=16, ~minutes=40, ~seconds=0, ~milliseconds=1000)
// 2023-02-20T16:40:01.000Z
Date.makeWithYMDHMSM(~year=2023, ~month=1, ~date=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`)
now
let now: unit => msSinceEpochnow()
Returns the time, in milliseconds, between UNIX epoch (January 1, 1970 00:00:00 UTC) and the current date time.
equal
let equal: (t, t) => boolcompare
let compare: (t, t) => Core__Ordering.tgetTime
let getTime: t => msSinceEpochgetTime(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
RESCRIPTDate.fromString("2023-02-20")->Date.getTime
// 1676851200000
getTimezoneOffset
let getTimezoneOffset: t => intgetTimezoneOffset(date)
Returns the time in minutes between the UTC time and the locale time. The timezone of the given date doesn't matter.
Examples
RESCRIPTDate.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
getFullYear
let getFullYear: t => intgetFullYear(date)
Returns the year of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-02-20")->Date.getFullYear
// 2023
getMonth
let getMonth: t => intgetMonth(date)
Returns the month (0-indexed) of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-01-01")->Date.getMonth
// 0
getDate
let getDate: t => intgetDate(date)
Returns the date (day of month) of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.getDate
// 20
getHours
let getHours: t => intgetHours(date)
Returns the hours of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.getHours
// 16
getMinutes
let getMinutes: t => intgetMinutes(date)
Returns the minutes of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.getMinutes
// 40
getSeconds
let getSeconds: t => intgetSeconds(date)
Returns the seconds of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.getSeconds
// 0
getMilliseconds
let getMilliseconds: t => intgetMilliseconds(date)
Returns the milliseconds of a given date (according to local time).
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.getMilliseconds
// 0
getDay
let getDay: t => intgetDay(date)
Returns the day of week of a given date (according to local time). 0 = Sunday, 1 = Monday, ... 6 = Saturday
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.getDay
// 1
setFullYear
let setFullYear: (t, int) => unitsetFullYear(date, year)
Sets the year of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setFullYear(2024)
setFullYearM
let setFullYearM: (t, ~year: int, ~month: int) => unitsetFullYearM(date, ~year, ~month)
Sets the year and month of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setFullYearM(~year=2024, ~month=0)
setFullYearMD
let setFullYearMD: (t, ~year: int, ~month: int, ~date: int) => unitsetFullYearMD(date, ~year, ~month, ~date)
Sets the year, month and date (day of month) of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setFullYearMD(~year=2024, ~month=0, ~date=1)
setMonth
let setMonth: (t, int) => unitsetMonth(date, month)
Sets the month of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMonth(0)
setDate
let setDate: (t, int) => unitsetDate(date, day)
Sets the date (day of month) of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setDate(1)
setHours
let setHours: (t, int) => unitsetHours(date, hours)
Sets the hours of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setHours(0)
setHoursM
let setHoursM: (t, ~hours: int, ~minutes: int) => unitsetHoursM(date, ~hours, ~minutes)
Sets the hours and minutes of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setHoursM(~hours=0, ~minutes=0)
setHoursMS
let setHoursMS: (t, ~hours: int, ~minutes: int, ~seconds: int) => unitsetHoursMS(date, ~hours, ~minutes, ~seconds)
Sets the hours, minutes and seconds of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setHoursMS(~hours=0, ~minutes=0, ~seconds=0)
setHoursMSMs
let setHoursMSMs: (
t,
~hours: int,
~minutes: int,
~seconds: int,
~milliseconds: int,
) => unitsetHoursMSMs(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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setHoursMSMs(~hours=0, ~minutes=0, ~seconds=0, ~milliseconds=0)
setMinutes
let setMinutes: (t, int) => unitsetMinutes(date, minutes)
Sets the minutes of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMinutes(0)
setMinutesS
let setMinutesS: (t, ~minutes: int, ~seconds: int) => unitsetMinutesS(date, ~minutes, ~seconds)
Sets the minutes and seconds of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMinutesS(~minutes=0, ~seconds=0)
setMinutesSMs
let setMinutesSMs: (
t,
~minutes: int,
~seconds: int,
~milliseconds: int,
) => unitsetMinutesSMs(date, ~minutes, ~seconds, ~milliseconds)
Sets the minutes, seconds and milliseconds of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMinutesSMs(~minutes=0, ~seconds=0, ~milliseconds=0)
setSeconds
let setSeconds: (t, int) => unitsetSeconds(date, seconds)
Sets the seconds of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setSeconds(0)
setSecondsMs
let setSecondsMs: (t, ~seconds: int, ~milliseconds: int) => unitsetSecondsMs(date, ~seconds, ~milliseconds)
Sets the seconds and milliseconds of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setSecondsMs(~seconds=0, ~milliseconds=0)
setMilliseconds
let setMilliseconds: (t, int) => unitsetMilliseconds(date, milliseconds)
Sets the milliseconds of a date (according to local time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMilliseconds(0)
getUTCFullYear
let getUTCFullYear: t => intgetUTCFullYear(date)
Returns the year of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCFullYear // 2022
getUTCMonth
let getUTCMonth: t => intgetUTCMonth(date)
Returns the month of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCMonth // 11
getUTCDate
let getUTCDate: t => intgetUTCDate(date)
Returns the date (day of month) of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCDate // 31
getUTCHours
let getUTCHours: t => intgetUTCHours(date)
Returns the hours of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCHours // 23
getUTCMinutes
let getUTCMinutes: t => intgetUTCMinutes(date)
Returns the minutes of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCMinutes // 0
getUTCSeconds
let getUTCSeconds: t => intgetUTCSeconds(date)
Returns the seconds of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCSeconds // 0
getUTCMilliseconds
let getUTCMilliseconds: t => intgetUTCMilliseconds(date)
Returns the milliseconds of a given date (according to UTC time).
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCMilliseconds // 0
getUTCDay
let getUTCDay: t => intgetUTCDay(date)
Returns the day (day of week) of a given date (according to UTC time). 0 = Sunday, 1 = Monday, ... 6 = Saturday
Examples
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+01:00")->Date.getUTCDay // 6
setUTCFullYear
let setUTCFullYear: (t, int) => unitsetUTCFullYear(date, year)
Sets the year of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCFullYear(2024)
setUTCFullYearM
let setUTCFullYearM: (t, ~year: int, ~month: int) => unitsetUTCFullYearM(date, ~year, ~month)
Sets the year and month of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCFullYearM(~year=2024, ~month=0)
setUTCFullYearMD
let setUTCFullYearMD: (t, ~year: int, ~month: int, ~date: int) => unitsetUTCFullYearMD(date, ~year, ~month, ~date)
Sets the year, month and date (day of month) of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCFullYearMD(~year=2024, ~month=0, ~date=1)
setUTCMonth
let setUTCMonth: (t, int) => unitsetUTCMonth(date, month)
Sets the month of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMonth(0)
setUTCDate
let setUTCDate: (t, int) => unitsetDate(date, day)
Sets the date (day of month) of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCDate(1)
setUTCHours
let setUTCHours: (t, int) => unitsetUTCHours(date, hours)
Sets the hours of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCHours(0)
setUTCHoursM
let setUTCHoursM: (t, ~hours: int, ~minutes: int) => unitsetHoursM(date, ~hours, ~minutes)
Sets the hours and minutes of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursM(~hours=0, ~minutes=0)
setUTCHoursMS
let setUTCHoursMS: (t, ~hours: int, ~minutes: int, ~seconds: int) => unitsetUTCHoursMS(date, ~hours, ~minutes, ~seconds)
Sets the hours, minutes and seconds of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursMS(~hours=0, ~minutes=0, ~seconds=0)
setUTCHoursMSMs
let setUTCHoursMSMs: (
t,
~hours: int,
~minutes: int,
~seconds: int,
~milliseconds: int,
) => unitsetUTCHoursMSMs(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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursMSMs(~hours=0, ~minutes=0, ~seconds=0, ~milliseconds=0)
setUTCMinutes
let setUTCMinutes: (t, int) => unitsetUTCMinutes(date, minutes)
Sets the minutes of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutes(0)
setUTCMinutesS
let setUTCMinutesS: (t, ~minutes: int, ~seconds: int) => unitsetUTCMinutesS(date, ~minutes, ~seconds)
Sets the minutes and seconds of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutesS(~minutes=0, ~seconds=0)
setUTCMinutesSMs
let setUTCMinutesSMs: (
t,
~minutes: int,
~seconds: int,
~milliseconds: int,
) => unitsetUTCMinutesSMs(date, ~minutes, ~seconds, ~milliseconds)
Sets the minutes, seconds and milliseconds of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutesSMs(~minutes=0, ~seconds=0, ~milliseconds=0)
setUTCSeconds
let setUTCSeconds: (t, int) => unitsetUTCSeconds(date, seconds)
Sets the seconds of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCSeconds(0)
setUTCSecondsMs
let setUTCSecondsMs: (t, ~seconds: int, ~milliseconds: int) => unitsetUTCSecondsMs(date, ~seconds, ~milliseconds)
Sets the seconds and milliseconds of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCSecondsMs(~seconds=0, ~milliseconds=0)
setUTCMilliseconds
let setUTCMilliseconds: (t, int) => unitsetUTCMilliseconds(date, milliseconds)
Sets the milliseconds of a date (according to UTC time). Beware this will mutate the date.
Examples
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMilliseconds(0)
toDateString
let toDateString: t => stringtoDateString(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
RESCRIPTDate.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
toString
let toString: t => stringtoString(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
RESCRIPTDate.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
let toTimeString: t => stringtoTimeString(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
RESCRIPTDate.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)
toLocaleDateString
let toLocaleDateString: t => stringtoLocaleDateString(date)
Converts a JavaScript date to a localized date string. It will use the current locale.
Examples
RESCRIPTDate.make()->Date.toLocaleDateString->Console.log
// 2/19/2023
toLocaleDateStringWithLocale
let toLocaleDateStringWithLocale: (t, string) => stringtoLocaleDateStringWithLocale(date, locale)
Converts a JavaScript date to a localized date string. It will use the specified locale.
Examples
RESCRIPTDate.make()->Date.toLocaleDateStringWithLocale("en-US")->Console.log
// 2/19/2023
toLocaleDateStringWithLocaleAndOptions
let toLocaleDateStringWithLocaleAndOptions: (t, string, localeOptions) => stringtoLocaleDateStringWithLocaleAndOptions(date, locale, options)
Converts a JavaScript date to a localized date string. It will use the specified locale and formatting options.
Examples
RESCRIPTDate.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
let toLocaleString: t => stringtoLocaleString(date)
Converts a JavaScript date to a localized date-time string. It will use the current locale.
Examples
RESCRIPTDate.make()->Date.toLocaleString->Console.log
// 2/19/2023, 3:40:00 PM
toLocaleStringWithLocale
let toLocaleStringWithLocale: (t, string) => stringtoLocaleStringWithLocale(date, locale)
Converts a JavaScript date to a localized date-time string. It will use the specified locale.
Examples
RESCRIPTDate.make()->Date.toLocaleStringWithLocale("en-US")->Console.log
// 2/19/2023, 3:40:00 PM
toLocaleStringWithLocaleAndOptions
let toLocaleStringWithLocaleAndOptions: (t, string, localeOptions) => stringtoLocaleStringWithLocaleAndOptions(date, locale, options)
Converts a JavaScript date to a localized date-time string. It will use the specified locale and formatting options.
Examples
RESCRIPTDate.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
let toLocaleTimeString: t => stringtoLocaleTimeString(date)
Converts a JavaScript date to a localized time string. It will use the current locale.
Examples
RESCRIPTDate.make()->Date.toLocaleTimeString->Console.log
// 3:40:00 PM
toLocaleTimeStringWithLocale
let toLocaleTimeStringWithLocale: (t, string) => stringtoLocaleTimeStringWithLocale(date, locale)
Converts a JavaScript date to a localized time string. It will use the specified locale.
Examples
RESCRIPTDate.make()->Date.toLocaleTimeStringWithLocale("en-US")->Console.log
// 3:40:00 PM
toLocaleTimeStringWithLocaleAndOptions
let toLocaleTimeStringWithLocaleAndOptions: (t, string, localeOptions) => stringtoLocaleTimeStringWithLocaleAndOptions(date, locale, options)
Converts a JavaScript date to a localized time string. It will use the specified locale and formatting options.
Examples
RESCRIPTDate.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
toISOString
let toISOString: t => stringtoISOString(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
RESCRIPTDate.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
toUTCString
let toUTCString: t => stringtoUTCString(date)
Converts a JavaScript date to date time string. The date will be mapped to the UTC time.
Examples
RESCRIPTDate.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
toJSON
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
RESCRIPTDate.fromString("2023-01-01T00:00:00.00+00:00")->Date.toJSON
// Some("2023-01-01T00:00:00.000Z")
Date.fromString("")->Date.toJSON
// None