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.

Try it

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.

const date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
const 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'

const 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
# sec-Intl.DateTimeFormat.prototype.formatRangeToParts

Browser compatibility

BCD tables only load in the browser

See also