语法
new Intl.DurationFormat()
new Intl.DurationFormat(locales)
new Intl.DurationFormat(locales, options)
参数
locales可选-
包含 BCP 47 语言标签的字符串或
Intl.Locale实例,或此类区域设置标识符的数组。当传入undefined或未指定支持的区域设置标识符时,将使用运行时的默认区域设置。有关locales参数的一般形式和解释,请参阅Intl主页上的参数描述。允许使用以下 Unicode 扩展键
nu-
请参阅
numberingSystem。
此键也可以通过
options(如下所列)设置。当两者都设置时,options属性优先。 options可选-
一个包含以下属性的对象,按照它们被检索的顺序排列(所有属性都是可选的)
localeMatcher-
要使用的区域设置匹配算法。可能的值是
"lookup"和"best fit";默认值为"best fit"。有关此选项的信息,请参阅 区域设置标识和协商。 numberingSystem-
用于数字格式化的编号系统,例如
"arab"、"hans"、"mathsans"等。有关支持的编号系统类型的列表,请参阅Intl.supportedValuesOf();默认值取决于区域设置。此选项也可以通过nuUnicode 扩展键设置;如果两者都提供,则此options属性优先。 style-
格式化持续时间时使用的样式。此值用作所有其他单位选项的默认值,并且在连接持续时间单位列表时也对应于
Intl.ListFormat()的style选项。可能的值有:"long"-
例如,1 小时 50 分钟
"short"(默认)-
例如,1 小时,50 分钟
"narrow"-
例如,1h 50m
"digital"-
例如,1:50:00
years-
格式化年数时使用的样式。可能的值为
"long"、"short"和"narrow";默认值为options.style(如果不是"digital"),否则为"short"。 yearsDisplay-
是否始终显示年数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定years,则默认为"auto",否则默认为"always"。 months-
格式化月数时使用的样式。可能的值为
"long"、"short"和"narrow";默认值为options.style(如果不是"digital"),否则为"short"。 monthsDisplay-
是否始终显示月数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定months,则默认为"auto",否则默认为"always"。 weeks-
格式化周数时使用的样式。可能的值为
"long"、"short"和"narrow";默认值为options.style(如果不是"digital"),否则为"short"。 weeksDisplay-
是否始终显示周数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定weeks,则默认为"auto",否则默认为"always"。 days-
格式化天数时使用的样式。可能的值为
"long"、"short"和"narrow";默认值为options.style(如果不是"digital"),否则为"short"。 daysDisplay-
是否始终显示天数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定days,则默认为"auto",否则默认为"always"。 hours-
格式化小时数时使用的样式。可能的值为
"long"、"short"、"narrow"、"numeric"和"2-digit";默认值为options.style(如果不是"digital"),否则为"numeric"。 hoursDisplay-
是否始终显示小时数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定hours且options.style不是"digital",则默认为"auto",否则默认为"always"。 minutes-
格式化分钟数时使用的样式。
- 如果
hours为"numeric"或"2-digit",可能的值为"numeric"和"2-digit",并且"numeric"会被标准化为"2-digit";默认值为"numeric"。 - 否则,可能的值为
"long"、"short"、"narrow"、"numeric"和"2-digit";默认值为options.style(如果不是"digital"),否则为"numeric"。
- 如果
minutesDisplay-
是否始终显示分钟数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定minutes且options.style不是"digital",则默认为"auto",否则默认为"always"。 seconds-
格式化秒数时使用的样式。
- 如果
minutes为"numeric"或"2-digit",可能的值为"numeric"和"2-digit",并且"numeric"会被标准化为"2-digit";默认值为"numeric"。 - 否则,可能的值为
"long"、"short"、"narrow"、"numeric"和"2-digit";默认值为options.style(如果不是"digital"),否则为"numeric"。
- 如果
secondsDisplay-
是否始终显示秒数,或仅在非零时显示。可能的值为
"always"和"auto";如果未指定seconds且options.style不是"digital",则默认为"auto",否则默认为"always"。 milliseconds-
格式化毫秒时使用的样式。
- 如果
seconds为"numeric"或"2-digit",唯一可能的值是"numeric";默认值为"numeric"。 - 否则,可能的值为
"long"、"short"、"narrow"和"numeric";默认值为options.style(如果不是"digital"),否则为"numeric"。
- 如果
millisecondsDisplay-
是否始终显示毫秒,或仅在非零时显示。
- 如果
seconds为"numeric"或"2-digit",唯一可能的值是"auto";只有当milliseconds未指定时,默认值为"auto"。 - 否则,可能的值为
"always"和"auto";如果未指定milliseconds,则默认为"auto",否则默认为"always"。
- 如果
microseconds-
格式化微秒时使用的样式。
- 如果
milliseconds为"numeric",唯一可能的值是"numeric";默认值为"numeric"。 - 否则,可能的值为
"long"、"short"、"narrow"和"numeric";默认值为options.style(如果不是"digital"),否则为"numeric"。
- 如果
microsecondsDisplay-
是否始终显示微秒,或仅在非零时显示。
- 如果
milliseconds为"numeric",唯一可能的值是"auto";只有当microseconds未指定时,默认值为"auto"。 - 否则,可能的值为
"always"和"auto";如果未指定microseconds,则默认为"auto",否则默认为"always"。
- 如果
nanoseconds-
格式化纳秒时使用的样式。
- 如果
microseconds为"numeric",唯一可能的值是"numeric";默认值为"numeric"。 - 否则,可能的值为
"long"、"short"、"narrow"和"numeric";默认值为options.style(如果不是"digital"),否则为"numeric"。
- 如果
nanosecondsDisplay-
是否始终显示纳秒,或仅在非零时显示。
- 如果
microseconds为"numeric",唯一可能的值是"auto";只有当nanoseconds未指定时,默认值为"auto"。 - 否则,可能的值为
"always"和"auto";如果未指定nanoseconds,则默认为"auto",否则默认为"always"。
- 如果
fractionalDigits-
要在输出中显示的秒的小数位数。可能的值为
0到9;默认值为undefined(包含必要的小数位数)。
异常
RangeError-
如果
locales或options包含无效值,则抛出此错误。
描述
对于每个时间段,后台都会构造一个 Intl.NumberFormat 对象。它使用以下选项(有关详细信息,请参阅 Intl.NumberFormat())
numberingSystem:options.numberingSystem的值
当 milliseconds、microseconds 或 nanoseconds 使用 "numeric" 样式时,还将使用以下选项:
minimumFractionDigits:当options.fractionalDigits为undefined时为0,否则为options.fractionalDigitsmaximumFractionDigits:当options.fractionalDigits为undefined时为9,否则为options.fractionalDigitsroundingMode:"trunc"
当时间段使用 "2-digit" 样式时,还将使用以下选项:
minimumIntegerDigits:2
当时间段使用 "long"、"short" 或 "narrow" 样式时,还将使用以下选项:
style:如果指定了"long"、"short"或"narrow",则为"unit",否则为undefinedunit:当前格式化的单位("years"、"days"、"nanoseconds"等)unitDisplay:时间段样式的("long"、"short"或"narrow")值
示例
使用 Intl.DurationFormat() 构造函数
const duration = {
hours: 2,
minutes: 20,
seconds: 35,
};
console.log(new Intl.DurationFormat("pt", { style: "long" }).format(duration));
// "2 horas, 20 minutos e 35 segundos"
规范
| 规范 |
|---|
| Intl.DurationFormat # sec-intl-durationformat-constructor |
浏览器兼容性
加载中…