Intl.DateTimeFormat.prototype.formatRange()

基线 广泛可用

此功能已得到良好建立,并在许多设备和浏览器版本中运行。它自 2017 年 9 月.

报告反馈

试试看

语法

formatRange()Intl.DateTimeFormat 实例的方法,它根据实例化此 Intl.DateTimeFormat 对象时提供的区域设置和选项,以最简洁的方式格式化日期范围。
formatRange(startDate, endDate)

js

参数

startDate

表示日期范围开始的 Date 对象。

endDate

表示日期范围结束的 Date 对象。

返回值

示例

表示给定日期范围的字符串,根据此 Intl.DateTimeFormat 对象的区域设置和格式选项进行格式化。

基本 formatRange 用法

formatRange()Intl.DateTimeFormat 实例的方法,它根据实例化此 Intl.DateTimeFormat 对象时提供的区域设置和选项,以最简洁的方式格式化日期范围。
const date1 = new Date(Date.UTC(1906, 0, 10, 10, 0, 0)); // Wed, 10 Jan 1906 10:00:00 GMT
const date2 = new Date(Date.UTC(1906, 0, 10, 11, 0, 0)); // Wed, 10 Jan 1906 11:00:00 GMT
const date3 = new Date(Date.UTC(1906, 0, 20, 10, 0, 0)); // Sat, 20 Jan 1906 10:00:00 GMT

const fmt1 = new Intl.DateTimeFormat("en", {
  year: "2-digit",
  month: "numeric",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
});
console.log(fmt1.format(date1)); // '1/10/06, 10:00 AM'
console.log(fmt1.formatRange(date1, date2)); // '1/10/06, 10:00 – 11:00 AM'
console.log(fmt1.formatRange(date1, date3)); // '1/10/06, 10:00 AM – 1/20/07, 10:00 AM'

const fmt2 = new Intl.DateTimeFormat("en", {
  year: "numeric",
  month: "short",
  day: "numeric",
});
console.log(fmt2.format(date1)); // 'Jan 10, 1906'
console.log(fmt2.formatRange(date1, date2)); // 'Jan 10, 1906'
console.log(fmt2.formatRange(date1, date3)); // 'Jan 10 – 20, 1906'

规范

此方法接收两个 Date 并根据实例化 Intl.DateTimeFormat 时提供的 localeoptions 以最简洁的方式格式化日期范围。
规范
# ECMAScript 国际化 API 规范

浏览器兼容性

sec-intl.datetimeformat.prototype.formatRange

另请参阅