Date
Functions for interacting with JavaScript Dates.
t
type t = Js.Date.t
A type representing a JavaScript date.
msSinceEpoch
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.
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 => t
fromString
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
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 => 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
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) => 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
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) => 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
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) => 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
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,
) => 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
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,
) => 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
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,
) => 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
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 => msSinceEpoch
now()
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) => bool
compare
let compare: (t, t) => Core__Ordering.t
getTime
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
RESCRIPTDate.fromString("2023-02-20")->Date.getTime
// 1676851200000
getTimezoneOffset
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
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 => int
getFullYear(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 => int
getMonth(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 => int
getDate(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 => int
getHours(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 => int
getMinutes(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 => int
getSeconds(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 => int
getMilliseconds(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 => int
getDay(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) => unit
setFullYear(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) => unit
setFullYearM(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) => unit
setFullYearMD(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) => unit
setMonth(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) => unit
setDate(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) => unit
setHours(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) => unit
setHoursM(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) => 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
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,
) => 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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setHoursMSMs(~hours=0, ~minutes=0, ~seconds=0, ~milliseconds=0)
setMinutes
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMinutes(0)
setMinutesS
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMinutesS(~minutes=0, ~seconds=0)
setMinutesSMs
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMinutesSMs(~minutes=0, ~seconds=0, ~milliseconds=0)
setSeconds
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setSeconds(0)
setSecondsMs
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setSecondsMs(~seconds=0, ~milliseconds=0)
setMilliseconds
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setMilliseconds(0)
getUTCFullYear
let getUTCFullYear: t => int
getUTCFullYear(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 => int
getUTCMonth(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 => int
getUTCDate(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 => int
getUTCHours(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 => int
getUTCMinutes(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 => int
getUTCSeconds(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 => int
getUTCMilliseconds(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 => int
getUTCDay(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) => unit
setUTCFullYear(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) => unit
setUTCFullYearM(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) => unit
setUTCFullYearMD(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) => unit
setUTCMonth(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) => unit
setDate(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) => unit
setUTCHours(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) => unit
setHoursM(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) => 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
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,
) => 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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCHoursMSMs(~hours=0, ~minutes=0, ~seconds=0, ~milliseconds=0)
setUTCMinutes
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutes(0)
setUTCMinutesS
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutesS(~minutes=0, ~seconds=0)
setUTCMinutesSMs
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMinutesSMs(~minutes=0, ~seconds=0, ~milliseconds=0)
setUTCSeconds
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCSeconds(0)
setUTCSecondsMs
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCSecondsMs(~seconds=0, ~milliseconds=0)
setUTCMilliseconds
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
RESCRIPTDate.fromString("2023-02-20T16:40:00.00")->Date.setUTCMilliseconds(0)
toDateString
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
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 => 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
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 => 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
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 => string
toLocaleDateString(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) => string
toLocaleDateStringWithLocale(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) => string
toLocaleDateStringWithLocaleAndOptions(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 => string
toLocaleString(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) => string
toLocaleStringWithLocale(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) => 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
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 => string
toLocaleTimeString(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) => string
toLocaleTimeStringWithLocale(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) => string
toLocaleTimeStringWithLocaleAndOptions(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 => 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
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 => string
toUTCString(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