recursal/MDN huggingface dataset:
Intl.DateTimeFormat.prototype.formatRange()
===========================================

La méthode **`Intl.DateTimeFormat.prototype.formatRange()`** permet de formater un intervalle de dates de la façon la plus concise en fonction de la **`locale`** et des **`options`** fournies lors de l'initialisation de l'objet `Intl.DateTimeFormat`.

Exemple interactif
------------------

Syntaxe
-------


```js
formatRange(dateDébut, dateFin);
```

Exemples
--------

### Utilisation simple de `formatRange()`

Cette méthode reçoit comme arguments deux objets `Date` et renvoie l'intervalle de la façon la plus concise possible (selon les options fournies lors de l'instanciation du formateur `Intl.DateTimeFormat`).


```js
let date1 = new Date(Date.UTC(2007, 0, 10, 10, 0, 0));
let date2 = new Date(Date.UTC(2007, 0, 10, 11, 0, 0));
let date3 = new Date(Date.UTC(2007, 0, 20, 10, 0, 0));
// > 'Wed, 10 Jan 2007 10:00:00 GMT'
// > 'Wed, 10 Jan 2007 11:00:00 GMT'
// > 'Sat, 20 Jan 2007 10:00:00 GMT'

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

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

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.prototype.formatRange |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.DateTimeFormat`
Intl.DateTimeFormat.prototype.format
====================================

La méthode **`Intl.DateTimeFormat.prototype.format()`** est un accesseur formate une date selon les options de locale et de format de l'objet `Intl.DateTimeFormat`.

Exemple interactif
------------------

Syntaxe
-------


```js
dateTimeFormat.format(date);
```

### Paramètres

`date`

La date à formater.

Description
-----------

L'accesseur `format` permet de formater une date en une chaîne de caractères en fonction des options de locale et de format définies pour l'objet `Intl.DateTimeFormat`.

Exemples
--------

### Utiliser `format`

On peut utiliser la fonction renvoyée par l'accesseur `format` pour formater une date. Par exemple selon la locale serbe :


```js
var options = {
  weekday: "long",
  year: "numeric",
  month: "long",
  day: "numeric",
};
var dateTimeFormat = new Intl.DateTimeFormat("sr-RS", options);
console.log(dateTimeFormat.format(new Date()));
// → "недеља, 7. април 2013."
```

### Utiliser `format` avec `map()`

On peut également utiliser la fonction renvoyée par l'accesseur `format` pour formater toutes les dates d'un tableau. On observe que la fonction est liée à l'objet `DateTimeFormat` dont elle provient, on peut donc la passer directement à `Array.prototype.map()`.


```js
var a = [new Date(2012, 08), new Date(2012, 11), new Date(2012, 03)];
var options = { year: "numeric", month: "long" };
var dateTimeFormat = new Intl.DateTimeFormat("pt-BR", options);
var formatted = a.map(dateTimeFormat.format);
console.log(formatted.join("; "));
// → "setembro de 2012; dezembro de 2012; abril de 2012"
```

### Comparaison des dates formatées et des valeurs statiques

La plupart du temps, le format renvoyé par `format()` est cohérent. Toutefois, cela peut évoluer à l'avenir et n'est pas garanti pour l'ensemble des langues (de telles variations sont souhaitables et permises par la spécification). Ainsi, IE et Edge ajoutent des caractères de contrôle bidirectionnels autour des dates afin que le texte produit ait une directionalité cohérente avec le texte avec lequel elles seront concaténées.

Aussi, mieux vaut ne pas comparer un résultat fourni par `format()` avec une valeur statique :


```js
let d = new Date("2019-01-01T00:00:00.000000Z");
let formattedDate = Intl.DateTimeFormat(undefined, {
  year: "numeric",
  month: "numeric",
  day: "numeric",
  hour: "numeric",
  minute: "numeric",
  second: "numeric",
}).format(d);

"1.1.2019, 01:00:00" === formattedDate;
// true pour Firefox et les autres
// false pour IE et Edge
```


**Note :** Voir aussi ce fil StackOverflow pour plus de détails et d'exemples.

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.prototype.format |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.DateTimeFormat`
* `Date.prototype.toLocaleString`
* `Date.prototype.toLocaleDateString`
* `Date.prototype.toLocaleTimeString`
Intl.DateTimeFormat.prototype.formatRangeToParts()
==================================================

La fonction **`Intl.DateTimeFormat.prototype.formatRangeToParts()`** permet, selon la locale utilisée, de représenter chaque élément de l'intervalle de dates via `DateTimeFormat` (en-US).

Syntaxe
-------


```js
Intl.DateTimeFormat.prototype.formatRangeToParts(dateDebut, dateFin);
```

Exemples
--------

### Usage basique de `formatRangeToParts`

Cette fonction reçoit deux Dates et retourne un Array d'objets contenant les élements qui représentent chaque partie de l'intervalle de date formatée, selon la locale utilisée.


```js
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);
// retourne la valeur:
// [
// { 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" }
// ]
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.DateTimeFormat.prototype.formatRangeToParts |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.DateTimeFormat.prototype.resolvedOptions()
===============================================

La méthode **`Intl.DateTimeFormat.prototype.resolvedOptions()`** renvoie un nouvel objet dont les propriétés reflètent les options de format et de locale pour les heures et dates, calculées pendant l'initialisation de l'objet `Intl.DateTimeFormat`.

Exemple interactif
------------------

Syntaxe
-------


```js
resolvedOptions();
```

### Valeur de retour

Un nouvel objet dont les propriétés reflètent les options de format et de locale pour les heures et dates, calculées pendant l'initialisation de l'objet `Intl.DateTimeFormat`.

Description
-----------

La valeur renvoyée par cette méthode contient les propriétés suivantes :

`locale`

La balise de langue BCP 47 qui est réellement utilisée. Si des extensions Unicode étaient fournies avec la balise d'origine et sont supportées pour la locale utilisée, les paires de clés-valeurs seront incluses dans `locale`.

`calendar`

Le calendrier utilisé (ex. `"gregory"` pour le calendrier grégorien).

`numberingSystem`

Les valeurs demandées pour les extensions Unicode `"ca"` et `"nu"` ou leurs valeurs par défaut.

`timeZone`

La valeur fournie par l'argument `options` pour cette propriété ou `undefined` (qui représente le fuseau horaire de l'environnement) si aucune valeur n'a été fournie. Les applications ne doivent pas s'appuyer sur ce dernier cas. En effet, de futures versions pourraient renvoyer une chaîne de caractères représentant le fuseau horaire de l'environnement et non pas `undefined`.

`hour12`

La valeur fournie pour cette propriété dans l'argument `options`.

`weekday`, `era`, `year`, `month`, `day`, `hour`, `minute`, `second`, `timeZoneName`

Les valeurs qui correspondent entre les propriétés de l'argument `options` et les combinaisons disponibles dans l'environnement pour les formats de date et d'heure pour la locale. Certaines de ces propriétés peuvent ne pas être présentes, cela indique que les composants indiqués ne seront pas représentés.

Exemples
--------

### Utiliser la méthode resolvedOptions()


```js
var germanFakeRegion = new Intl.DateTimeFormat("de-XX", { timeZone: "UTC" });
var usedOptions = germanFakeRegion.resolvedOptions();

usedOptions.locale; // "de"
usedOptions.calendar; // "gregory"
usedOptions.numberingSystem; // "latn"
usedOptions.timeZone; // "UTC"
usedOptions.month; // "numeric"
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.prototype.resolvedoptions |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.DateTimeFormat`
Intl.DateTimeFormat.supportedLocalesOf()
========================================

À partir d'une locale ou d'un tableau de locales **`Intl.DateTimeFormat.supportedLocalesOf()`** renvoie un tableau qui contient les locales supportées pour le formatage des dates et des heures qui ne nécessitent pas d'avoir recours à la locale par défaut de l'environnement.

Exemple interactif
------------------

Syntaxe
-------


```js
Intl.DateTimeFormat.supportedLocalesOf(locales[, options])
```

### Paramètres

`locales`

Un chaîne de caractères au format d'une balise de langue BCP 47 ou bien un tableau de telles chaînes. Pour plus d'informations sur le format de l'argument `locales`, voir la page `Intl`.

`options`

Paramètre optionnel, un objet pouvant avoir la propriété suivante :

`localeMatcher`

L'algorithme de correspondance entre locales à utiliser. Les valeurs possibles sont "lookup" et "best fit". Pour plus d'informations sur ce sujet, voir la page `Intl`.


### Valeur de retour

Un tableau de chaînes de caractères qui représente un sous-ensemble des balises de langue qui sont prises en charge pour la mise en forme de l'heure et de la date sans qu'il soit nécessaire d'utiliser la locale par défaut de l'environnement d'exécution.

Description
-----------

Renvoie un tableau qui est un sous-ensemble de `locales`. Les balises de langues renvoyées sont celles supportées par l'environnement pour le formatage des heures et des dates. Ces balises sont déterminées en fonction de l'algorithme de correspondances de locale et des locales utilisées. Le tableau résultant fournit les locales qui permettent de ne pas avoir à utiliser la locale par défaut.

Exemple
-------

### Utiliser `supportedLocalesOf`

Si on dispose d'un environnement qui supporte les locales indonésienne et allemande mais pas balinaise pour le formatage des dates et des heures, `supportedLocalesOf` renverra les balises BCP 47 pour l'indonésien et l'allemand (bien que la collation pinyin ne soit pas pertinente pour les dates ni pour l'indonésien et qu'il soit peu probable qu'une variante indonésienne existe pour l'allemand). Pour l'exemple, on l'utilise l'algorithme `"lookup"`. Si on utilisait `"best fit"`, on pourrait considérer que l'indonésien est adéquat pour la locale balinaise (sachant que la plupart des balinais comprend l'indonésien) et donc également renvoyer la balise balinaise.


```js
var locales = ["ban", "id-u-co-pinyin", "de-ID"];
var options = { localeMatcher: "lookup" };
console.log(
  Intl.DateTimeFormat.supportedLocalesOf(locales, options).join(", "),
);
// → "id-u-co-pinyin, de-ID"
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.datetimeformat.supportedlocalesof |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.DateTimeFormat`
Intl.NumberFormat.prototype.resolvedOptions()
=============================================

La méthode **`Intl.NumberFormat.prototype.resolvedOptions()`** renvoie un nouvel objet dont les propriétés correspondent aux options de locales et de format calculées à l'initialisation de l'objet `Intl.NumberFormat`.

Exemple interactif
------------------

Syntaxe
-------


```js
numberFormat.resolvedOptions();
```

### Valeur de retour

Un objet dont les propriétés correspondent aux options de locale et de format calculées lors de l'initialisation de l'objet `Intl.NumberFormat`.

Description
-----------

Cette méthode renvoie un objet composé des propriétés suivantes :

`locale`

La balise de langue BCP 47 qui est utilisée. Si des extensions Unicode avaient été rajoutées à la balise BCP 47 demandée, les paires de clés-valeurs qui ont été demandées et qui sont supportées sont inscrites dans `locale`.

`numberingSystem`

La valeur requise via l'extension Unicode `"nu"` ou celle qui est utilisée par défaut.

`style`, `useGrouping`

Les valeurs fournies pour ces propriétés via l'argument `options` ou bien les valeurs par défaut.

`currency`, `currencyDisplay`

Les valeurs fournies pour ces propriétés via l'argument `options` ou bien les valeurs par défaut. Ces valeurs sont présentes uniquement si `style` vaut `"currency"`.

Un seul des deux groupes suivants est inclus dans les propriétés :

`minimumIntegerDigits`, `minimumFractionDigits`, `maximumFractionDigits`

Les valeurs fournies pour ces propriétés via l'argument `options` ou bien les valeurs par défaut. Ces propriétés ne sont présentes que si `minimumSignificantDigits` ou `maximumSignificantDigits` n'ont pas été fournies à l'argument `options`.

`minimumSignificantDigits`, `maximumSignificantDigits`

Les valeurs fournies pour ces propriétés via l'argument `options` ou bien les valeurs par défaut. Ces propriétés sont présentes si au moins une d'entre elles a été fournie via l'argument `options`.

Exemples
--------

### Utiliser la méthode `resolvedOptions()`


```js
var de = new Intl.NumberFormat("de-DE");
var usedOptions = de.resolvedOptions();

usedOptions.locale; // "de-DE"
usedOptions.numberingSystem; // "latn"
usedOption.style; // "decimal"
usedOptions.minimumIntegerDigits; // 1
usedOptions.minimumFractionDigits; // 0
usedOptions.maximumFractionDigits; // 3
usedOptions.useGrouping; // true
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.resolvedoptions |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.NumberFormat`
Intl.NumberFormat.prototype.formatRange()
=========================================

La méthode **`Intl.NumberFormat.prototype.formatRange()`** formate un intervalle numérique selon la locale et les options de formatage associées à l'objet `Intl.NumberFormat` sur lequel la méthode est appelée.

Syntaxe
-------


```js
formatRange(debutIntervalle, finIntervalle);
```

### Paramètres

`debutIntervalle`

Une valeur numérique `Number` ou `BigInt`.

`finIntervalle`

Une valeur numérique `Number` ou `BigInt`.

Description
-----------

L'accesseur `formatRange` donne une fonction qui formate un intervalle numérique en une chaîne de caractères selon les options de locale et de formatage associées à l'objet `Intl.NumberFormat` sur lequel il est appelé.

Exemples
--------

### Utiliser `formatRange()`

On utilise ici la fonction `formatRange()` pour formater un intervalle de valeurs représentant des montants en devises :


```js
const nf = new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD",
  maximumFractionDigits: 0,
});

console.log(nf.formatRange(3, 5)); // → "$3 - $5"
console.log(nf.formatRange(2.9, 3.1)); // → "~$3"
```



```js
const nf = new Intl.NumberFormat("es-ES", {
  style: "currency",
  currency: "EUR",
  maximumFractionDigits: 0,
});

console.log(nf.formatRange(3, 5); // → "3-5 €"
console.log(nf.formatRange(2.9, 3.1); // → "~3 €"
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.formatrange |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.NumberFormat`
* `Number.prototype.toLocaleString()`
Intl.NumberFormat.prototype.format
==================================

La méthode **`Intl.NumberFormat.prototype.format()`** formate un nombre en fonction des options de locales et de formats définis dans l'objet `Intl.NumberFormat` correspondant.

Exemple interactif
------------------

Syntaxe
-------


```js
numberFormat.format(nombre);
```

### Paramètres

`nombre`

Le nombre qu'on souhaite formater.

Description
-----------

La fonction d'accesseur `format` permet de formater un nombre donné en une chaîne de caractères selon les options de locale et de format de l'objet `Intl.NumberFormat`.

Exemples
--------

### Utiliser `format()`

On peut utiliser la fonction renvoyée par `format` pour formater une valeur monétaire selon la locale russe :


```js
var options = { style: "currency", currency: "RUB" };
var numberFormat = new Intl.NumberFormat("ru-RU", options);
console.log(numberFormat.format(654321.987));
// → "654 321,99 руб."
```

### Utiliser `format()` avec `map()`

On peut également utiliser la fonction `format` pour formater les nombres contenus dans un tableau. On notera que la fonction est liée à l'objet `NumberFormat` dont elle provient, on peut donc directement l'utiliser avec `Array.prototype.map`.


```js
var a = [123456.789, 987654.321, 456789.123];
var numberFormat = new Intl.NumberFormat("es-ES");
var formatted = a.map(numberFormat.format);
console.log(formatted.join("; "));
// → "123.456,789; 987.654,321; 456.789,123"
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.format |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.NumberFormat`
* `Number.prototype.toLocaleString()`
Intl.NumberFormat.supportedLocalesOf()
======================================

La méthode **`Intl.NumberFormat.supportedLocalesOf()`** renvoie un tableau de locales supportées parmi les locales fournies en argument afin d'éviter d'utiliser celle par défaut de l'environnement.

Exemple interactif
------------------

Syntaxe
-------


```js
Intl.NumberFormat.supportedLocalesOf(locales[, options])
```

### Paramètres

`locales`

Une chaîne de caractères qui est une balise BCP 47 ou un tableau composé de telles chaînes. Pour plus d'informations sur la forme générale de l'argument `locales`, voir la page `Intl`.

`options`

Un objet qui peut avoir la propriété suivante :

`localeMatcher`

L'algorithme de correspondance des locales à utiliser. Les valeurs possibles sont "lookup" et "best fit". La valeur par défaut est "best fit". Pour plus d'informations,, voir la page `Intl`.


### Valeur de retour

Un tableau de chaînes de caractères représentant un sous-ensemble des balises de langues qui sont prises en charge pour la mise en forme des nombres sans qu'il soit nécessaire d'utiliser la locale par défaut de l'environnement d'exécution.

Description
-----------

Cette méthode renvoie un tableau de locales supportées parmi les locales fournies en argument afin d'éviter d'utiliser celle par défaut de l'environnement. Les locales renvoyées sont celles considérées comme équivalentes aux locales fournies avec l'algorithme indiqué.

Exemples
--------

### Utiliser `supportedLocalesOf()`

Si on dispose d'un environnement qui supporte les locales indonésienne et allemande mais pas balinaise pour le formatage des dates et des heures, `supportedLocalesOf` renverra les balises BCP 47 pour l'indonésien et l'allemand (bien que la collation pinyin ne soit pas pertinente pour les nombres ni pour l'indonésien et qu'il soit peu probable qu'une variante indonésienne existe pour l'allemand). Pour l'exemple, on l'utilise l'algorithme `"lookup"`. Si on utilisait `"best fit"`, on pourrait considérer que l'indonésien est adéquat pour la locale balinaise (sachant que la plupart des balinais comprend l'indonésien) et donc également renvoyer la balise balinaise.


```js
var locales = ["ban", "id-u-co-pinyin", "de-ID"];
var options = { localeMatcher: "lookup" };
console.log(Intl.NumberFormat.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.supportedlocalesof |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.NumberFormat`
Intl.DisplayNames.prototype.resolvedOptions()
=============================================

La méthode **`Intl.DisplayNames.prototype.resolvedOptions()`** renvoie un nouvel objet dont les propriétés reflètent les options de locale et de formatage calculées lors de l'instance de l'objet `Intl.DisplayNames` courant.

Syntaxe
-------


```js
resolvedOptions();
```

### Valeur de retour

Un objet dont les propriétés reflètent les options de locale et de formatage obtenues lors de la construction de l'objet `Intl.DisplayNames` courant.

Description
-----------

L'objet renvoyé par `resolvedOptions()` possède les propriétés suivantes :

`locale`

La balise de langue BCP 47 pour la locale effectivement utilisée Si des extensions Unicode avaient été demandées dans la balise d'origine et ont mené à cette locale, les paires de clés-valeurs requises et qui sont prises en charge pour cette locale sont incluses dans `locale`.

`style`

La valeur fournie pour cette propriété dans l'argument `options` passé au constructeur ou la valeur par défaut ("`long`"). Sa valeur est soit "`long`", soit "`short`", soit "`narrow`".

`type`

La valeur fournie pour cette propriété dans l'argument `options` passé au constructeur ou la valeur par défaut ("`language`"). Sa valeur est soit "`language`", soit "`region`", soit "`script`", soit "`currency`".

`fallback`

La valeur fournie pour cette propriété dans l'argument `options` passé au constructeur ou la valeur par défaut ("`code`"). Sa valeur est soit "`code`", soit "`none`".

Exemples
--------

### Utiliser resolvedOptions()


```js
const displayNames = new Intl.DisplayNames(["de-DE"], { type: "region" });

const usedOptions = displayNames.resolvedOptions();
console.log(usedOptions.locale); // "de-DE"
console.log(usedOptions.style); // "long"
console.log(usedOptions.type); // "region"
console.log(usedOptions.fallback); // "code"
```

Spécifications
--------------

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.DisplayNames.prototype.resolvedOptions |

Compatibilité des navigateurs
-----------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Voir aussi
----------

* `Intl.DisplayNames`