Intl.DateTimeFormat.prototype.formatRangeToParts()

The Intl.DateTimeFormat.prototype.formatRangeToParts() method allows locale-specific tokens representing each part of the formatted date range produced by Intl.DateTimeFormat formatters.

Syntax

Intl.DateTimeFormat.prototype.formatRangeToParts(startDate, endDate)

Examples

Basic formatRangeToParts usage

This method receives two Dates and returns an Array of objects containing the locale-specific tokens representing each part of the formatted date range.

let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
// > 'Wed, 10 Jan 2007 10:00:00 GMT'
// > 'Wed, 10 Jan 2007 11:00:00 GMT'

let fmt = new Intl.DateTimeFormat("en", {
    hour: 'numeric',
    minute: 'numeric'
});

console.log(fmt.formatRange(date1, date2));
// > '10:00 – 11:00 AM'

fmt.formatRangeToParts(date1, date2);
// return value:
// [
//   { type: 'hour',      value: '10',  source: "startRange" },
//   { type: 'literal',   value: ':',   source: "startRange" },
//   { type: 'minute',    value: '00',  source: "startRange" },
//   { type: 'literal',   value: ' – ', source: "shared"     },
//   { type: 'hour',      value: '11',  source: "endRange"   },
//   { type: 'literal',   value: ':',   source: "endRange"   },
//   { type: 'minute',    value: '00',  source: "endRange"   },
//   { type: 'literal',   value: ' ',   source: "shared"     },
//   { type: 'dayPeriod', value: 'AM',  source: "shared"     }
// ]

Specifications

Specification
Intl.DateTimeFormat.formatRange
The definition of 'formatRangeToParts()' in that specification.

Browser compatibility

BCD tables only load in the browser

See also