IntlBaseline · Widely available
The Intl API provides language sensitive string comparison, number formatting, date and time formatting, and more.
Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Sep 28, 2017. Widely available since Mar 28, 2020.
Browser support
DesktopChrome
1–23Not supported
24+Supportedsince Jan 10, 2013
Current: 155Edge
12+Supportedsince Jul 29, 2015
Current: 154Firefox
1–28Not supported
29+Supportedsince Apr 29, 2014
Current: 157Safari
1–9.1Not supported
10+Supportedsince Sep 20, 2016
Current: 27MobileChrome Android
18–18Not supported
25+Supportedsince Feb 27, 2013
Current: 155Firefox Android
4–55Not supported
56+Supportedsince Sep 28, 2017
Current: 157Safari iOS
1–9.3Not supported
10+Supportedsince Sep 13, 2016
Current: 27How to use
This feature is Baseline widely available — use it freely, no fallback needed.
Example
Full syntax and examples are on MDN: toLocaleString.
Feature detection
JS · check before using
if (typeof Intl !== "undefined") {
// Intl is available
}Documentation (MDN)
Specification
Usage share
Sub-features
Support for each part of the feature (103). The overall table above shows when the whole feature works.
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| Array.toLocaleString | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| Array.toLocaleString.locales_parameter | 24 | 79 | 52 | 7 | 25 | 56 | 7 |
| Array.toLocaleString.options_parameter | 24 | 79 | 52 | 7 | 25 | 56 | 7 |
| BigInt.toLocaleString | 67 | 79 | 68 | 14 | 67 | 68 | 14 |
| BigInt.toLocaleString.locales_parameter | 76 | 79 | 70 | 14 | 76 | 79 | 14 |
| BigInt.toLocaleString.options_parameter | 76 | 79 | 70 | 14 | 76 | 79 | 14 |
| Date.toLocaleDateString | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| Date.toLocaleDateString.iana_time_zone_names | 24 | 14 | 52 | 7 | 25 | 56 | 7 |
| Date.toLocaleDateString.locales_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Date.toLocaleDateString.options_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Date.toLocaleString | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| Date.toLocaleString.iana_time_zone_names | 24 | 14 | 52 | 7 | 25 | 56 | 7 |
| Date.toLocaleString.locales_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Date.toLocaleString.options_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Date.toLocaleTimeString | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| Date.toLocaleTimeString.iana_time_zone_names | 24 | 14 | 52 | 7 | 25 | 56 | 7 |
| Date.toLocaleTimeString.locales_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Date.toLocaleTimeString.options_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
Show 83 more
| Sub-feature | Chrome | Edge | Firefox | Safari | Chrome Android | Firefox Android | Safari iOS |
|---|---|---|---|---|---|---|---|
| Intl.Collator.Collator | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.Collator.options_caseFirst_parameter | 24 | 18 | 55 | 11 | 25 | 56 | 11 |
| Intl.Collator.Collator.options_collation_parameter | 86 | 86 | 85 | 14.1 | 86 | 85 | 14.5 |
| Intl.Collator.Collator.options_ignorePunctuation_parameter | 24 | 79 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.Collator.options_localeMatcher_parameter | 24 | 79 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.Collator.options_numeric_parameter | 24 | 79 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.Collator.options_sensitivity_parameter | 24 | 79 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.Collator.options_usage_parameter | 24 | 79 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.compare | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.resolvedOptions | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.Collator.supportedLocalesOf | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.DateTimeFormat | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.DateTimeFormat.IntlLegacyConstructedSymbol | 91 | 91 | 54 | 14.1 | 91 | 56 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.locales_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_calendar_parameter | 80 | 80 | 76 | 14.1 | 80 | 79 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_dateStyle_parameter | 76 | 79 | 79 | 14.1 | 76 | 79 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_dayPeriod_parameter | 92 | 92 | 90 | 14.1 | 92 | 90 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_fractionalSecondDigits_parameter | 84 | 84 | 84 | 14.1 | 84 | 84 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_hourCycle_parameter | 73 | 18 | 58 | 13 | 73 | 58 | 13 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_numberingSystem_parameter | 80 | 80 | 76 | 14.1 | 80 | 79 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeStyle_parameter | 76 | 79 | 79 | 14.1 | 76 | 79 | 14.5 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZoneName_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZoneName_parameter.extended_values | 95 | 95 | 91 | 15.4 | 95 | 91 | 15.4 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZone_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZone_parameter.iana_time_zones | 24 | 14 | 52 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.format | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.formatRange | 76 | 79 | 91 | 14.1 | 76 | 91 | 14.5 |
| Intl.DateTimeFormat.formatRangeToParts | 76 | 79 | 91 | 14.1 | 76 | 91 | 14.5 |
| Intl.DateTimeFormat.formatToParts | 57 | 18 | 51 | 11 | 57 | 56 | 11 |
| Intl.DateTimeFormat.resolvedOptions | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.DateTimeFormat.resolvedOptions.computed_timezone | 35 | 14 | 53 | 10 | 35 | 56 | 10 |
| Intl.DateTimeFormat.supportedLocalesOf | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.IntlLegacyConstructedSymbol | 91 | 91 | 54 | 14.1 | 91 | 56 | 14.5 |
| Intl.NumberFormat.NumberFormat.locales_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_compactDisplay_parameter | 77 | 79 | 78 | 14.1 | 77 | 79 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_currencyDisplay_parameter | 77 | 79 | 42 | 14.1 | 77 | 56 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_currencySign_parameter | 77 | 79 | 78 | 14.1 | 77 | 79 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_currency_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_localeMatcher_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_maximumFractionDigits_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_maximumSignificantDigits_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_minimumFractionDigits_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_minimumIntegerDigits_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_minimumSignificantDigits_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_notation_parameter | 77 | 79 | 78 | 14.1 | 77 | 79 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_numberingSystem_parameter | 24 | 12 | 76 | 14.1 | 25 | 56 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_roundingIncrement_parameter | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_roundingMode_parameter | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_roundingPriority_parameter | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_signDisplay_parameter | 77 | 79 | 78 | 14.1 | 77 | 79 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_signDisplay_parameter.negative | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_style_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_trailingZeroDisplay_parameter | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_unitDisplay_parameter | 77 | 79 | 78 | 14.1 | 77 | 79 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_unit_parameter | 77 | 79 | 78 | 14.1 | 77 | 79 | 14.5 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_useGrouping_parameter | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.NumberFormat.options_parameter.options_useGrouping_parameter.string_values | 106 | 106 | 116 | 16.4 | 106 | 116 | 16.4 |
| Intl.NumberFormat.format | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.format.number_parameter-string_decimal | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.formatRange | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.formatRangeToParts | 106 | 106 | 116 | 15.4 | 106 | 116 | 15.4 |
| Intl.NumberFormat.formatToParts | 64 | 12 | 58 | 13 | 64 | 58 | 13 |
| Intl.NumberFormat.resolvedOptions | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.NumberFormat.supportedLocalesOf | 24 | 12 | 29 | 10 | 25 | 56 | 10 |
| Intl.getCanonicalLocales | 54 | 16 | 48 | 10.1 | 54 | 56 | 10.3 |
| Intl.supportedValuesOf | 99 | 99 | 93 | 15.4 | 99 | 93 | 15.4 |
| Number.toLocaleString | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| Number.toLocaleString.locales_parameter | 24 | 12 | 29 | 10 | 26 | 56 | 10 |
| Number.toLocaleString.options_parameter | 24 | 12 | 29 | 10 | 26 | 56 | 10 |
| Object.toLocaleString | 1 | 12 | 1 | 1 | 18 | 4 | 1 |
| String.localeCompare | 1 | 12 | 1 | 3 | 18 | 4 | 1 |
| String.localeCompare.locales_parameter | 24 | 12 | 29 | 10 | 26 | 56 | 10 |
| String.localeCompare.options_parameter | 24 | 12 | 29 | 10 | 26 | 56 | 10 |
| String.toLocaleLowerCase | 1 | 12 | 1 | 1.3 | 18 | 4 | 1 |
| String.toLocaleLowerCase.locales_parameter | 58 | 12 | 55 | 10 | 58 | 55 | 10 |
| String.toLocaleUpperCase | 1 | 12 | 1 | 1.3 | 18 | 4 | 1 |
| String.toLocaleUpperCase.locales_parameter | 58 | 12 | 55 | 10 | 58 | 55 | 10 |
| TypedArray.toLocaleString | 7 | 12 | 51 | 5.1 | 18 | 51 | 5 |