javascript - Comment fonctionne toLocaleDateString() dans Chrome ?


J'ai compris que la méthode JavaScript toLocaleDateString() utilise les paramètres de l'ordinateur.

Prenons l’exemple de W3Schools : lorsque je change les formats de date et d’heure de mon ordinateur, le résultat est différent dans Firefox ou IE (comme prévu), mais Chrome affiche toujours le même format de date, pourquoi ?

Réponse #1

Il semble que Chrome n'utilise pas les paramètres régionaux de Windows, mais plutôt ses propres paramètres. Ceux-ci sont accessibles via Paramètres > Paramètres avancés > Langue. Cependant, le format de date n'est pas défini explicitement, il est déduit à partir du choix de la langue + du pays, par exemple :

  • L'anglais (États-Unis) définit le format de date sur jj/mm/aaaa
  • L'anglais (R.-U.) définit le format de date sur jj/mm/aaaa

(Pour ceux qui essaient de modifier ces paramètres, n'oubliez pas - comme je l'ai fait - de redémarrer Chrome pour que les paramètres prennent effet)

Pour revenir à la question originale, il semble que l'utilisation de toLocaleDateString() était légitime tant que l'idée est de présenter l'information dans un format compréhensible par l'utilisateur humain. Mais ce serait un monde idéal, où chaque utilisateur aurait son navigateur correctement configuré. En réalité, Chrome est configuré par défaut en anglais (États-Unis) tant que les gens ne changent pas la langue, et il faut un peu de recherche sur Google (ce que la plupart des utilisateurs ne font pas) pour modifier ces paramètres.

Cela rend risqué l'utilisation de toLocaleDateString() même lorsqu'on ne « dépend pas d'un format ou d'une locale particulier ». Il semble que la seule option « sérieuse » pour toute application web multi-navigateurs soit de gérer ses propres préférences de format de date (par utilisateur, bien sûr...)

Réponse #2

D'après le MDN :

« Le format exact dépend de la plateforme, de la région et des paramètres de l’utilisateur. »

Et,

« Vous ne devriez pas utiliser cette méthode dans des contextes où vous dépendez d’un format ou d’une locale particulière. »

Fondamentalement, "Pourquoi" est parce que c'est ainsi que Chrome le fait. Si vous avez besoin d'un format spécifique, vous devrez le spécifier vous-même.