2010-04-02 8 views
1

J'ai "vendredi, 02 avril 2010" comme date maintenant je veux afficher "04/02/2010" si la langue du navigateur est sélectionné anglais et "02.04.2010" si la langue du navigateur est sélectionné comme Allemand. Tout ce que je veux, c'est d'afficher la date selon le format du navigateur.Comment convertir le format de la date

Une idée Comment cela peut-il être fait?

+0

Devez-vous analyser la date? Ou est-ce déjà une valeur de date? – Alsciende

+0

c'est déjà une valeur de date mais elle vient au format de date de serveur et je dois l'afficher selon le format de date du navigateur. –

Répondre

2

Il se complique assez rapidement, votre meilleur pari est de trouver une bibliothèque pour le faire.

Par exemple, DateJS, gratuit et ouvert, prend en charge environ 150 locales, mais avec des fichiers différents pour chacune, ce qui peut être pénible en termes de conversion de votre format d'entrée, si votre entrée est toujours en anglais. S'il est possible que vous changiez votre entrée pour qu'elle soit internationalisée comme ISO 8601 (more here et here), cela facilitera grandement la localisation de cette entrée.

+0

@ T.J, donc il n'y a pas de support intégré et je dois apprendre à utiliser DateJS ou tel autre javascript? –

+0

@vinay_rockin: Cela dépend de votre définition de "built-in". Par exemple, vous pouvez analyser cette chaîne vous-même, puis utiliser le constructeur 'Date (year, month, day)' (ce qui ne vous aide pas beaucoup). Le seul support intégré pour les chaînes de date d'analyse recherche un format * très * spécifique, malheureusement, voir la section 15.9 (en particulier 15.9.1.15 et 15.9.4.2) de la spécification: http://www.ecma-international.org/ publications/standards/Ecma-262.htm (Notez que les anciennes implémentations JavaScript ne prendront pas en charge cette utilisation d'ISO 8601 et nécessiteront un format de date encore plus obscur.) –

+0

La date (année, mois, jour) me donnera à nouveau "Vendredi, 02 avril 2010 ", maintenant comment afficher le format de date du navigateur sélectionné de (mm/jj/aaaa ou jj/mm/aaaa ou similaires ont d'autres séparateurs comme:, - au lieu de /) qui est la question d'origine. –

0
<html> 
<body> 
hi 
<script> 
var lang = navigator.language; 
if (!lang) { 
lang = navigator.userLanguage; 
} 
alert (lang); 
if (lang.match (/^en/)) { 
document.write ("04/02/2010"); 
} else if (lang.match (/^de/)) { 
document.write ("02.04.2010"); 
} else { 
document.write ("I give up"); 
} 

</script> 
</body> 
</html> 
+0

@Smack, donc vous voulez dire qu'il n'y a pas de solution facile, et je devrais vérifier les langues ciblant le plus grand public? –

+0

Vous voulez une solution générale pour toutes les langues? Je pense que l'autre réponse semble bonne. –

Questions connexes