Date.prototype.toLocaleFormat()

Non standard
Cette fonctionnalité n'est ni standard, ni en voie de standardisation. Ne l'utilisez pas pour des sites accessibles sur le Web : elle ne fonctionnera pas pour tout utilisateur. Il peut également y avoir d'importantes incompatibilités entre les implémentations et son comportement peut être modifié dans le futur.

La méthode non-standard toLocaleFormat() convertit une date en une chaîne de caractères, en utilisant le formatage renseigné. DateTimeFormat est une alternative standardisée. Voir aussi la nouvelle version de Date.prototype.toLocaleDateString().

Syntaxe

dateObj.toLocaleFormat(formatTexte)

Paramètres

formatTexte
Une chaîne de caractères formattée selon les attentes de la fonction strftime() en C.

Valeur de retour

Une chaîne de caractères qui représente la date indiquée avec le formatage décrit par l'argument.

Description

La méthode toLocaleFormat() apporte un meilleur contrôle sur le formattage des textes produits pour une date. Les noms des mois et des jours de la semaine sont localisés en utilisant la locale du système d'exploitation. Cependant, l'arrangement des jours et mois, ainsi que les autres tâches de localisation ne sont pas prises en charge automatiquement, puisque vous avez le contrôle sur leur ordre d'éxécution. Vous devez faire attention que la chaîne formattée soit localisée correctement en fonction des réglages du systèmes de l'utilisateur. N'oubliez pas que la locale utilisée n'est pas forcément la même que la locale du navigateur.

Les développeurs de modules et XULRunner doivent savoir que charger directement le chaîne de formattage depuis un fichier .dtd ou .properties en utilisant chrome://somedomain/locale/somefile.ext doit être évité, car le fichier dtd/properties et la méthode toLocaleFormat() n'utilisent pas forcément la même locale, ce qui peut produire des résultats ambigües, ou des dates illisibles.

Notez aussi que le comportement de la locale utilisée dépend de la plateforme, et que l'utilisateur peut modifier cette locale. Ainsi, utiliser la locale du système pour choisir le format, peut dans certains cas ne pas être approprié. Vous devriez envisager l'usage des méthodes plus génériques toLocale* de l'objet Date, ou créer votre localisation personnalisée de la date à partir des méthodes get* de l'objet Date.

Utiliser toLocaleFormat()

var aujourdhui = new Date();
var date = aujourdhui.toLocaleFormat("%A, %B %e, %Y"); // A ne pas faire

Dans cet exemple, toLocaleFormat() renvoie une chaîne de caractères tel que "Wednesday, October 3, 2007". Notez que le format de ce texte dans cet exemple n'est pas correctement localisé, ce qui amène aux problèmes décrits plus haut.

Prothèse d'émulation (polyfill)

En utilisant la bibliothèque DateJS, il est possible d'émuler Date.prototype.toLocaleDateString() pour des environnements qui n'en disposent pas nativement :

if (!Date.prototype.toLocaleFormat) {
    (function() {
        Date.prototype.toLocaleFormat = function(formatString) {
            return this.format(formatString);
        };
    }());
}

Spécifications

Ne fait partie d'aucune spécification. Implémentée avec JavaScript 1.6.

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple ? (Oui) Pas de support ? ?
Fonctionnalité Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple ? ? (Oui) ? ? ?

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, teoli, tregagnon
 Dernière mise à jour par : SphinxKnight,