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) | ? | ? | ? |