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.

Syntaxe

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 :

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().

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 :

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

Sp√©cification √Čtat Commentaires
ECMAScript Internationalization API 1.0 (ECMA-402)
La définition de 'Intl.DateTimeFormat.format' dans cette spécification.
Standard Définition initiale.
ECMAScript Internationalization API 2.0 (ECMA-402)
La définition de 'Intl.DateTimeFormat.format' dans cette spécification.
Standard  
ECMAScript Internationalization API (ECMA-402)
La définition de 'Intl.DateTimeFormat.format' dans cette spécification.
Standard √©volutif  

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi