Intl.DateTimeFormat.prototype.formatRangeToParts()

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

Syntax

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.

Note: The return values shown in your locale may differ from those listed below.

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
ECMAScript Internationalization API Specification (ECMAScript Internationalization API)
# sec-Intl.DateTimeFormat.prototype.formatRangeToParts

Browser compatibility

BCD tables only load in the browser

See also