Date

These are extensions to JavaScript's Date. See this documentation for all standard Date methods.

Static properties

MS_IN_SECOND number

The number of milliseconds in a second.

MS_IN_MINUTE number

The number of milliseconds in a minute.

MS_IN_HOUR number

The number of milliseconds in an hour.

MS_IN_DAY number

The number of milliseconds in a day.

SECONDS_IN_MINUTE number

The number of seconds in a minute.

SECONDS_IN_HOUR number

The number of seconds in a hour.

SECONDS_IN_DAY number

The number of seconds in a day.

MINUTES_IN_HOUR number

The number of minutes in a hour.

MINUTES_IN_DAY number

The number of minutes in a day.

HOURS_IN_DAY number

The number of hours in a day.

DAYS_IN_WEEK number

The number of days in a week.

MONTHS_IN_QUARTER number

The number of months in a quarter.

QUARTERS_IN_YEAR number

The number of quarters in a year.

MONTHS_IN_YEAR number

The number of months in a year.

Methods

addYears

addYears(yearOffset: number) 

Offset the date by the given amount of years. Returns a new Date and leaves the original the same.

Parameters

yearOffset number

The number of years to subtract from or add to the Date.

Return type

Date

Examples

new Date("2024-01-01").addYears(1)       // => (Date) 2025-01-01
new Date("2024-01-01").addYears(-10)     // => (Date) 2014-01-01

addQuarters

addQuarters(quarterOffset: number) 

Offset the date by the given amount of quarters. Returns a new Date and leaves the original the same.

Parameters

quarterOffset number

The number of quarters to subtract from or add to the Date.

Return type

Date

Examples

new Date("2000-01-01").addQuarters(1)      // => (Date) 2000-04-01
new Date("2000-01-01").addQuarters(-8)     // => (Date) 1998-01-01
new Date("2000-01-31").addQuarters(1)      // => (Date) 2000-04-30

addMonths

addMonths(monthOffset: number) 

Offset the date by the given amount of months. Returns a new Date and leaves the original the same.

Parameters

monthOffset number

The number of months to subtract from or add to the Date.

Return type

Date

Examples

new Date("2000-01-01").addMonths(1)      // => (Date) 2000-02-01
new Date("2000-01-01").addMonths(-10)    // => (Date) 1999-03-01
new Date("2000-01-31").addMonths(1)      // => (Date) 2000-02-29

addDays

addDays(dayOffset: number) 

Offset the date by the given amount of days. Returns a new Date and leaves the original the same.

Parameters

dayOffset number

The number of days to subtract from or add to the Date.

Return type

Date

Examples

new Date("2024-01-01").addDays(14)      // => (Date) 2024-01-15
new Date("2024-01-01").addDays(-1)      // => (Date) 2023-12-31

addHours

addHours(hourOffset: number) 

Offset the date by the given amount of hours. Returns a new Date and leaves the original the same.

Parameters

hourOffset number

The number of hours to subtract from or add to the Date.

Return type

Date

Examples

new Date("2024-01-01T12:30:00Z").addHours(1)      // => (Date) 2024-01-01 13:30:00
new Date("2024-01-01T12:00:00Z").addHours(-14)    // => (Date) 2023-12-31 22:00:00

addMinutes

addMinutes(minuteOffset: number) 

Offset the date by the given amount of minutes. Returns a new Date and leaves the original the same.

Parameters

minuteOffset number

The number of minutes to subtract from or add to the Date.

Return type

Date

Examples

new Date("2024-01-01T12:30:00Z").addMinutes(15)     // => (Date) 2024-01-01 12:45:00
new Date("2024-01-01T00:00:00Z").addMinutes(-15)    // => (Date) 2023-12-31 23:45:00

addSeconds

addSeconds(secondOffset: number) 

Offset the date by the given amount of seconds. Returns a new Date and leaves the original the same.

Parameters

secondOffset number

The number of seconds to subtract from or add to the Date.

Return type

Date

Examples

new Date("2024-01-01T12:30:00Z").addSeconds(15)     // => (Date) 2024-01-01 12:30:15
new Date("2024-01-01T00:00:00Z").addSeconds(-15)    // => (Date) 2023-12-31 23:59:45

addMilliseconds

addMilliseconds(msOffset: number) 

Offset the date by the given amount of seconds. Returns a new Date and leaves the original the same.

Parameters

msOffset number

The number of milliseconds to subtract from or add to the Date.

Return type

Date

Examples

new Date("2024-01-01T12:30:00Z").addMilliseconds(15)     // => (Date) 2024-01-01 12:30:00.015
new Date("2024-01-01T00:00:00Z").addMilliseconds(-15)    // => (Date) 2023-12-31 23:59:59.985

clone

clone() 

Creates a duplicate of the Date object.

Parameters

Return type

Date

Examples

new Date("2024-01-01T12:30:00Z").clone()     // => (Date) 2024-01-01 12:30:00

daysInMonth

daysInMonth(year?: number, month?: number) 

Returns the number of days in the given year and month.

Parameters

year number

(optional) The year.

month number

(optional) The month. 1 = January, 12 = December.

Return type

Date

Examples

new Date("2000-02-01").daysInMonth()       // => 29 (the number of days in February 2000)
new Date("2001-01-01").daysInMonth(2)      // => 28 (the number of days in February 2001)
new Date().daysInMonth(1)                  // => 31 (the number of days in January of the current (or any) year)
new Date().daysInMonth(2000, 2)            // => 29 (the number of days in February 2000)

diff

diff(otherDate: Date | string, absolute?: boolean) 

Calculates the difference with another Date.

Parameters

otherDate Date | string

A JavaScript Date object or an ISO 8601 formatted string.

absolute boolean

(optional) If true, will return a positive value for the difference.

Return type

DateDiffResult

Examples

new Date("2000-02-01T12:30:45.999").diff("2020-10-31T13:00:00")   // => 
        {   
            totalMilliseconds: 654740954001,
            totalSeconds: 654740954.001,
            totalMinutes: 10912349.23335,
            totalHours: 181872.4872225,
            totalDays: 7578.0203009375,
            totalMonths: 248,
            totalYears: 20,
            totalFullSeconds: 654740954,
            totalFullMinutes: 10912349,
            totalFullHours: 181872,
            totalFullDays: 7578,
            totalFullMonths: 248,
            totalFullYears: 20
        }

diffAbs

diffAbs(otherDate: Date | string) 

Calculates the difference with another Date. Always returns a positive value, no matter what the order of comparison is (Future with Past or Past with Future). It is similar to calling 'diff' with the second parameter set to true.

Parameters

otherDate Date | string

A JavaScript Date object or an ISO 8601 formatted string.

Return type

DateDiffResult

Examples

new Date("2020-10-31T13:00:00").diffAbs("2000-02-01T12:30:45.999")  // See the example for diff() for the output.

isSameDay

isSameDay(otherDate: Date | string) 

Returns whether another Date is on the exact same day. This basically compares the year, month and day, but not the time part.

Parameters

otherDate Date | string

A JavaScript Date object or an ISO 8601 formatted string.

Return type

boolean

Examples

new Date("2020-10-31T00:00:00Z").isSameDay("2020-10-31T23:59:59.999Z")  // => true
new Date("2020-10-31").isSameDay("2021-10-31")                          // => false (The year is different)

isFuture

isFuture() 

Returns whether the Date object is in the future relative to the present date.

Parameters

Return type

boolean

Examples

TODAY().addDays(1).isFuture()               // => true (tomorrow is in the future)
TODAY().addSeconds(-1).isFuture()           // => false (1 second ago is not the future)

isPast

isPast() 

Returns whether the Date object is in the past relative to the present date.

Parameters

Return type

boolean

Examples

TODAY().addDays(1).isPast()                 // => false (tomorrow is in not in the past)
TODAY().addSeconds(-1).isPast()             // => true (1 second ago is in the past)

isBetween

isBetween(dateFrom: Date | string, dateTo: Date | string) 

Returns whether the Date object is between two given dates.

Parameters

dateFrom Date | string

A JavaScript Date object or an ISO 8601 formatted string.

dateTo Date | string

A JavaScript Date object or an ISO 8601 formatted string.

Return type

boolean

Examples

TODAY().isBetween(TODAY().addDays(-1), TODAY().addDays(1))         // => true (today is between yesterday and tomorrow)
new Date('2000-01-01').isBetween(new Date('1900-01-01'), TODAY())  // => true (Jan 1st 2000 is between 1900 and today)

startOfYear

startOfYear() 

Returns a duplicate of the Date object, with the time set to the start of the year (Jan 1st at 00:00:00)

Parameters

Return type

Date

Examples

new Date("2001-06-04").startOfYear()   // => (Date) 2001-01-01T00:00

endOfYear

endOfYear() 

Returns a duplicate of the Date object, with the time set the end of the year (Dec 31st at 23:59:59)

Parameters

Return type

Date

Examples

new Date("2001-05-11").endOfYear()    // => (Date) 2001-12-31T23:59:59.999

startOfQuarter

startOfQuarter() 

Returns a duplicate of the Date object, with the time set to the start of the quarter (1st of Jan/Apr/Jul/Oct at 00:00:00)

Parameters

Return type

Date

Examples

new Date("2001-06-04").startOfQuarter()   // => (Date) 2001-04-01T00:00

endOfQuarter

endOfQuarter() 

Returns a duplicate of the Date object, with the time set the end of the quarter (31st of Mar/Jun/Sep/Dec at 23:59:59)

Parameters

Return type

Date

Examples

new Date("2001-05-11").endOfQuarter()    // => (Date) 2001-06-30T23:59:59.999

startOfMonth

startOfMonth() 

Returns a duplicate of the Date object, with the time set to the start of the month (Day 1 at 00:00:00)

Parameters

Return type

Date

Examples

new Date("2001-10-31").startOfMonth()   // => (Date) 2001-10-01T00:00

endOfMonth

endOfMonth() 

Returns a duplicate of the Date object, with the time set the end of the month (Day 28/29/30/31 at 23:59:59)

Parameters

Return type

Date

Examples

new Date("2001-01-01").endOfMonth()    // => (Date) 2001-01-31T23:59:59.999

startOfDay

startOfDay() 

Returns a duplicate of the Date object, with the time set to the start of the day (00:00:00)

Parameters

Return type

Date

Examples

new Date("2001-01-31T13:30:59.890Z").startOfDay()   // => (Date) 2001-01-31T00:00

endOfDay

endOfDay() 

Returns a duplicate of the Date object, with the time set the end of the day (23:59:59)

Parameters

Return type

Date

Examples

new Date("2001-01-31T13:30:59.890Z").endOfDay()   // => (Date) 2001-01-31T23:59:59.999

toShortDateString

toShortDateString() 

Returns a string representation of the date in the format YYYY-MM-DD

Parameters

Return type

string

Examples

NOW().toShortDateString()                                  // => 2024-01-30
new Date("2001-01-31T13:30:00.000Z").toShortDateString()   // => 2001-01-31

toYear

toYear(yearOrDate?: Date | number | string) 

Returns a duplicate of the Date object, with a specified year. If no parameter is specified, will set the date to the present year.

Parameters

yearOrDate Date | number | string

(optional) The year to change the date to.

Return type

Date

Examples

new Date("2001-01-31").toYear()                         // => (Date) 2024-01-31
new Date("2001-01-31").toYear(2003)                     // => (Date) 2003-01-31
new Date("2001-01-31").toYear(new Date('2011-01-01'))   // => (Date) 2011-01-31

toPresentYear

toPresentYear() 

Returns a duplicate of the Date object, set to the present year.

Parameters

Return type

Date

Examples

new Date("2001-01-31").toPresentYear()                  // => (Date) 2024-01-31