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.
SUNDAY number ​
The day index for Sunday.
MONDAY number ​
The day index for Monday.
TUESDAY number ​
The day index for Tuesday.
WEDNESDAY number ​
The day index for Wednesday.
THURSDAY number ​
The day index for Thursday.
FRIDAY number ​
The day index for Friday.
SATURDAY number ​
The day index for Saturday.
Methods ​
firstDayOfMonth ​
firstDayOfMonth(year: number, month: number, dayIdx: number)Returns the first day (of the week) of the month for the given year and month.
Parameters
year number
The year to use.
month number
The month to use. 1 = January, 2 = February, etc. (1-12)
dayIdx number
The day index to use. 0 = Sunday, 1 = Monday, etc. (0-6)
Return type
Date
Examples
Date.firstDayOfMonth(2025, 1, Date.MONDAY) // => (Date) 2025-01-06
Date.firstDayOfMonth(2025, 1, Date.SATURDAY) // => (Date) 2025-01-04lastDayOfMonth ​
lastDayOfMonth(year: number, month: number, dayIdx: number)Returns the last day (of the week) of the month for the given year and month.
Parameters
year number
The year to use.
month number
The month to use. 1 = January, 2 = February, etc. (1-12)
dayIdx number
The day index to use. 0 = Sunday, 1 = Monday, etc. (0-6)
Return type
Date
Examples
Date.lastDayOfMonth(2025, 1, Date.MONDAY) // => (Date) 2025-01-27
Date.lastDayOfMonth(2025, 1, Date.SATURDAY) // => (Date) 2025-01-25getHolidays ​
getHolidays(cultureName: string)Returns the holidays for the given year and culture.
Parameters
cultureName string
The culture name or object to use for determining weekends and holidays.
Return type
CultureSpecificNonWorkingDays
Examples
Date.getHolidays('NL') // => { dates: { newYearsDay: '01-01', ... } }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
DATE("2026-01-01").addYears(1) // => (Date) 2027-01-01
DATE("2026-01-01").addYears(-10) // => (Date) 2016-01-01addQuarters ​
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
DATE("2000-01-01").addQuarters(1) // => (Date) 2000-04-01
DATE("2000-01-01").addQuarters(-8) // => (Date) 1998-01-01
DATE("2000-01-31").addQuarters(1) // => (Date) 2000-04-30addMonths ​
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
DATE("2000-01-01").addMonths(1) // => (Date) 2000-02-01
DATE("2000-01-01").addMonths(-10) // => (Date) 1999-03-01
DATE("2000-01-31").addMonths(1) // => (Date) 2000-02-29addDays ​
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
DATE("2026-01-01").addDays(14) // => (Date) 2026-01-15
DATE("2026-01-01").addDays(-1) // => (Date) 2025-12-31addWorkDays ​
addWorkDays(workdayOffset: number, cultureName?: string | CultureSpecificNonWorkingDays)Offset the date by the given amount of workdays. Will skip over weekends by default and a culture name or object may be specified. Returns a new Date and leaves the original the same.
Parameters
workdayOffset number
The number of workdays to subtract from or add to the Date.
cultureName string | CultureSpecificNonWorkingDays
(optional) The culture name or object to use for determining weekends and holidays.
Return type
Date
Examples
DATE("2000-01-01").addWorkDays(14) // => (Date) 2000-01-20
DATE("2025-05-04").addWorkDays(1, 'NL') // => (Date) 2025-05-06 (Dutch Liberation Day was skipped)
// Determining the working days is very culture-specific and even within a company it can be different.
// For flexibility, you can also specify an entirely new culture-specific object.
// In the example below, we defining a culture that only has one holiday (Jan. 2nd):
DATE("2025-01-01").addWorkDays(1, { dates: { myCustomHoliday: '01-02' } }) // => (Date) 2025-01-03
// But, in most cases you will want to derive the culture-specific object from an existing preset.
// In the example below, we are adding Good Friday to a copy of the Dutch holidays and remove King's Day
const nlHolidays = Date.getHolidays('NL')
nlHolidays.dates.goodFriday = function (year) {
return nlHolidays.dates.easterMonday(year).addDays(-3)
}
delete nlHolidays.dates.kingsDay // Remove King's Day
DATE("2025-04-17").addWorkDays(1, nlHolidays) // => (Date) 2025-04-22 (Good Friday, weekend and Easter Monday were skipped)
DATE("2023-04-26").addWorkDays(1, nlHolidays) // => (Date) 2023-04-27 (King's Day was not skipped)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
DATE("2026-01-01T12:30:00Z").addHours(1) // => (Date) 2026-01-01 13:30:00
DATE("2026-01-01T12:00:00Z").addHours(-14) // => (Date) 2025-12-31 22:00:00addMinutes ​
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
DATE("2026-01-01T12:30:00Z").addMinutes(15) // => (Date) 2026-01-01 12:45:00
DATE("2026-01-01T00:00:00Z").addMinutes(-15) // => (Date) 2025-12-31 23:45:00addSeconds ​
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
DATE("2026-01-01T12:30:00Z").addSeconds(15) // => (Date) 2026-01-01 12:30:15
DATE("2026-01-01T00:00:00Z").addSeconds(-15) // => (Date) 2025-12-31 23:59:45addMilliseconds ​
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
DATE("2026-01-01T12:30:00Z").addMilliseconds(15) // => (Date) 2026-01-01 12:30:00.015
DATE("2026-01-01T00:00:00Z").addMilliseconds(-15) // => (Date) 2025-12-31 23:59:59.985clone ​
clone()Creates a duplicate of the Date object.
Parameters
Return type
Date
Examples
DATE("2026-01-01T12:30:00Z").clone() // => (Date) 2026-01-01 12:30:00daysInMonth ​
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
DATE("2000-02-01").daysInMonth() // => 29 (the number of days in February 2000)
DATE("2001-01-01").daysInMonth(2) // => 28 (the number of days in February 2001)
TODAY().daysInMonth(1) // => 31 (the number of days in January of the current (or any) year)
TODAY().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
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
DATE("2020-10-31T13:00:00").diffAbs("2000-02-01T12:30:45.999") // See the example for diff() for the output.isWeekend ​
isWeekend(cultureNameOrObject?: string | CultureSpecificNonWorkingDays)Returns whether the date is a weekend. By default, this will use the default of Saturday and Sunday. You can also specify a culture name or object to use for determining weekends.
Parameters
cultureNameOrObject string | CultureSpecificNonWorkingDays
(optional) The culture name or object to use for determining weekends.
Return type
boolean
Examples
DATE("2025-05-18").isWeekend() // => true (Sunday the 18th of May 2025)
DATE("2025-05-18").isWeekend('NL') // => true (Sunday the 18th of May 2025)
DATE("2025-05-18").isWeekend({ weekend: [Date.FRIDAY, Date.SATURDAY]}) // => false (Sunday was not a weekend in this culture)isHoliday ​
isHoliday(cultureNameOrObject?: string | CultureSpecificNonWorkingDays)Returns whether the date is a holiday. By default this will return false, unless a culture name or object is specified and the date is a holiday in that culture.
Parameters
cultureNameOrObject string | CultureSpecificNonWorkingDays
(optional) The culture name or object to use for determining weekends and holidays.
Return type
boolean
Examples
DATE("2025-12-25").isHoliday() // => false (Christmas is not a holiday in an unspecified culture)
DATE("2025-12-25").isHoliday('NL') // => true (Christmas is a holiday in the Netherlands)
DATE("2025-01-02").isHoliday({ dates: { myCustomHoliday: '01-02' } }) // => true (Jan 2nd is a holiday in this imaginary culture)getWeek ​
getWeek(culture?: string)Returns the ISO week number of the date.
Parameters
culture string
(optional) Future use only. The culture to use for determining the first day of the week. For now, and if not specified, the ISO standard will be used (Monday as the first day of the week).
Return type
number
Examples
DATE("2026-02-17").getWeek() // => 8 (Feb 17th 2026 is in the 8th week of 2026)
DATE("2026-02-17").getWeek('NL') // => 8 (The Netherlands also uses Monday as the first day of the week, so the result is the same)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
DATE("2020-10-31T00:00:00Z").isSameDay("2020-10-31T23:59:59.999Z") // => true
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)
DATE('2000-01-01').isBetween(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
DATE("2001-06-04").startOfYear() // => (Date) 2001-01-01T00:00endOfYear ​
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
DATE("2001-05-11").endOfYear() // => (Date) 2001-12-31T23:59:59.999startOfQuarter ​
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
DATE("2001-06-04").startOfQuarter() // => (Date) 2001-04-01T00:00endOfQuarter ​
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
DATE("2001-05-11").endOfQuarter() // => (Date) 2001-06-30T23:59:59.999startOfMonth ​
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
DATE("2001-10-31").startOfMonth() // => (Date) 2001-10-01T00:00endOfMonth ​
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
DATE("2001-01-01").endOfMonth() // => (Date) 2001-01-31T23:59:59.999startOfDay ​
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
DATE("2001-01-31T13:30:59.890Z").startOfDay() // => (Date) 2001-01-31T00:00endOfDay ​
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
DATE("2001-01-31T13:30:59.890Z").endOfDay() // => (Date) 2001-01-31T23:59:59.999toShortDateString ​
toShortDateString()Returns a string representation of the date in the format YYYY-MM-DD
Parameters
Return type
string
Examples
NOW().toShortDateString() // => 2026-06-12
DATE("2001-01-31T13:30:00.000Z").toShortDateString() // => 2001-01-31toYear ​
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
DATE("2001-01-31").toYear() // => (Date) 2026-01-31
DATE("2001-01-31").toYear(2003) // => (Date) 2003-01-31
DATE("2001-01-31").toYear(DATE('2011-01-01')) // => (Date) 2011-01-31toPresentYear ​
toPresentYear()Returns a duplicate of the Date object, set to the present year.
Parameters
Return type
Date
Examples
DATE("2001-01-31").toPresentYear() // => (Date) 2026-01-31