Date Ranges

In this section you can find information on how to handle the construction of complex date expressions. More specifically how to construct the start or end date of a period and use it for displaying or for querying data service. Together with the Predefined Manifest Parameters TODAY_ISO and NOW_ISO cards provide a helper for handling date ranges.

Date Range

Inside the card manifest you can use the global functions dateRange.start and dateRange.end to create the start or the end date of a date range. For example, a date range like 'last 5 years' can be used inside an expression binding like this: {= dateRange.start("lastYears", 5)}.

Experimental API since version 1.73. This feature is experimental. The API may change.

dateRange.start(type, value?) : UniversalDate

dateRange.end(type, value?) : UniversalDate

Param Type Description Since
type string A valid date range type like 'lastYears'. For full list see the table below. 1.73
value int How many years, days, months, etc. to be the range. If range is 'lastYears' this parameter describes how many years. 1.73
Returns 1.73
UniversalDate The start/end date of the range. UniversalDate is convertable to Date or string. 1.73

Supported date ranges

type Description value
lastDays Number of days before the current day Number of days
yesterday Start and end of yesterday's date
today Start and end of today's date
nextDays Number of days after the current day Number of days
lastWeeks Number of weeks before the current week Number of weeks
lastWeek Start and end of last week
currentWeek Start and end of the current week
nextWeek Start and end of next week's
nextWeeks Number of weeks after the current week Number of weeks
lastMonths Number of months before the current month Number of months
lastMonth Start and end of last month
currentMonth Start and end of current month
nextMonth Start and end of next month
nextMonths Number of months after the current month Number of months
lastQuarters Start and end of the number of quarters before the current quarter Number of quarters
lastQuarter Start and end of last quarter
currentQuarter Start and end of current quarter
nextQuarter Start and end of next quarter
nextQuarters Start and end of number of quarters after the current quarter Number of quarters
quarter Start and end of the specified quarter of the current year Which quarter
lastYears Number of years before the current year Number of years
lastYear Start and end of last year
currentYear Start and end of current year
nextYear Start and end of next year
nextYears Number of years after the current year Number of years
yearToDate Range between the first day of the current year and today

Examples

Expression Result if today is 2019-11-01
{= dateRange.start('lastYears', 5)} 2014-01-01T00:00:00
{= dateRange.end('lastYears', 5)} 2018-12-31T23:59:59
{= dateRange.start('yesterday')} 2019-10-31T00:00:00
{= dateRange.end('nextQuarter')} 2020-03-31T23:59:59

Date range in title:

{
	"header": {
		"title": "Expectations for next 6 months",
		"subTitle": "Until {= format.dateTime(dateRange.end('nextMonths', 6), {pattern: 'MMMM, y'})}"
	}
}

Date range used in odata request:

{
	"data": {
		"request": {
			"url": "https/services.odata.org/V3/Northwind/Northwind.svc/Orders",
			"parameters": {
				"$format": "json",
				"$top": 5,
				"$orderby": "Freight desc",
				"$filter": "OrderDate ge datetime'{= format.dateTime(dateRange.start('lastYears', 30), {pattern: 'yyyy-MM-ddTHH:mm:ss'})}'"
			}
		},
		"path": "/value/"
	}
}
Try it Out