Obtenir un format de date court localisé à l'aide de javascript

Est-ce que, de toute façon, nous pouvons savoir utiliser JavaScript le format de date court utilisé dans le Panneau de configuration -> Paramètres régionaux et linguistiques?

Je sais que l'utilisation de la combinaison des éléments suivants nous permet d'obtenir le format Locale Long Name

toString() toLocaleString() toLocaleDateString() toLocaleTimeString() 

Mais il n'y a pas de fonction directe dans JavaScript comme toLocaleShortDateString() .

Existe-t-il des scripts disponibles pour savoir quel est le réglage de l'utilisateur?

Merci.

 function getLocaleDateString(){ var formats = { "ar-SA" : "dd/MM/yy", "bg-BG" : "dd.M.yyyy", "ca-ES" : "dd/MM/yyyy", "zh-TW" : "yyyy/M/d", "cs-CZ" : "dMyyyy", "da-DK" : "dd-MM-yyyy", "de-DE" : "dd.MM.yyyy", "el-GR" : "d/M/yyyy", "en-US" : "M/d/yyyy", "fi-FI" : "dMyyyy", "fr-FR" : "dd/MM/yyyy", "he-IL" : "dd/MM/yyyy", "hu-HU" : "yyyy. MM. dd.", "is-IS" : "dMyyyy", "it-IT" : "dd/MM/yyyy", "ja-JP" : "yyyy/MM/dd", "ko-KR" : "yyyy-MM-dd", "nl-NL" : "dM-yyyy", "nb-NO" : "dd.MM.yyyy", "pl-PL" : "yyyy-MM-dd", "pt-BR" : "d/M/yyyy", "ro-RO" : "dd.MM.yyyy", "ru-RU" : "dd.MM.yyyy", "hr-HR" : "dMyyyy", "sk-SK" : "d. M. yyyy", "sq-AL" : "yyyy-MM-dd", "sv-SE" : "yyyy-MM-dd", "th-TH" : "d/M/yyyy", "tr-TR" : "dd.MM.yyyy", "ur-PK" : "dd/MM/yyyy", "id-ID" : "dd/MM/yyyy", "uk-UA" : "dd.MM.yyyy", "be-BY" : "dd.MM.yyyy", "sl-SI" : "dMyyyy", "et-EE" : "d.MM.yyyy", "lv-LV" : "yyyy.MM.dd.", "lt-LT" : "yyyy.MM.dd", "fa-IR" : "MM/dd/yyyy", "vi-VN" : "dd/MM/yyyy", "hy-AM" : "dd.MM.yyyy", "az-Latn-AZ" : "dd.MM.yyyy", "eu-ES" : "yyyy/MM/dd", "mk-MK" : "dd.MM.yyyy", "af-ZA" : "yyyy/MM/dd", "ka-GE" : "dd.MM.yyyy", "fo-FO" : "dd-MM-yyyy", "hi-IN" : "dd-MM-yyyy", "ms-MY" : "dd/MM/yyyy", "kk-KZ" : "dd.MM.yyyy", "ky-KG" : "dd.MM.yy", "sw-KE" : "M/d/yyyy", "uz-Latn-UZ" : "dd/MM yyyy", "tt-RU" : "dd.MM.yyyy", "pa-IN" : "dd-MM-yy", "gu-IN" : "dd-MM-yy", "ta-IN" : "dd-MM-yyyy", "te-IN" : "dd-MM-yy", "kn-IN" : "dd-MM-yy", "mr-IN" : "dd-MM-yyyy", "sa-IN" : "dd-MM-yyyy", "mn-MN" : "yy.MM.dd", "gl-ES" : "dd/MM/yy", "kok-IN" : "dd-MM-yyyy", "syr-SY" : "dd/MM/yyyy", "dv-MV" : "dd/MM/yy", "ar-IQ" : "dd/MM/yyyy", "zh-CN" : "yyyy/M/d", "de-CH" : "dd.MM.yyyy", "en-GB" : "dd/MM/yyyy", "es-MX" : "dd/MM/yyyy", "fr-BE" : "d/MM/yyyy", "it-CH" : "dd.MM.yyyy", "nl-BE" : "d/MM/yyyy", "nn-NO" : "dd.MM.yyyy", "pt-PT" : "dd-MM-yyyy", "sr-Latn-CS" : "dMyyyy", "sv-FI" : "dMyyyy", "az-Cyrl-AZ" : "dd.MM.yyyy", "ms-BN" : "dd/MM/yyyy", "uz-Cyrl-UZ" : "dd.MM.yyyy", "ar-EG" : "dd/MM/yyyy", "zh-HK" : "d/M/yyyy", "de-AT" : "dd.MM.yyyy", "en-AU" : "d/MM/yyyy", "es-ES" : "dd/MM/yyyy", "fr-CA" : "yyyy-MM-dd", "sr-Cyrl-CS" : "dMyyyy", "ar-LY" : "dd/MM/yyyy", "zh-SG" : "d/M/yyyy", "de-LU" : "dd.MM.yyyy", "en-CA" : "dd/MM/yyyy", "es-GT" : "dd/MM/yyyy", "fr-CH" : "dd.MM.yyyy", "ar-DZ" : "dd-MM-yyyy", "zh-MO" : "d/M/yyyy", "de-LI" : "dd.MM.yyyy", "en-NZ" : "d/MM/yyyy", "es-CR" : "dd/MM/yyyy", "fr-LU" : "dd/MM/yyyy", "ar-MA" : "dd-MM-yyyy", "en-IE" : "dd/MM/yyyy", "es-PA" : "MM/dd/yyyy", "fr-MC" : "dd/MM/yyyy", "ar-TN" : "dd-MM-yyyy", "en-ZA" : "yyyy/MM/dd", "es-DO" : "dd/MM/yyyy", "ar-OM" : "dd/MM/yyyy", "en-JM" : "dd/MM/yyyy", "es-VE" : "dd/MM/yyyy", "ar-YE" : "dd/MM/yyyy", "en-029" : "MM/dd/yyyy", "es-CO" : "dd/MM/yyyy", "ar-SY" : "dd/MM/yyyy", "en-BZ" : "dd/MM/yyyy", "es-PE" : "dd/MM/yyyy", "ar-JO" : "dd/MM/yyyy", "en-TT" : "dd/MM/yyyy", "es-AR" : "dd/MM/yyyy", "ar-LB" : "dd/MM/yyyy", "en-ZW" : "M/d/yyyy", "es-EC" : "dd/MM/yyyy", "ar-KW" : "dd/MM/yyyy", "en-PH" : "M/d/yyyy", "es-CL" : "dd-MM-yyyy", "ar-AE" : "dd/MM/yyyy", "es-UY" : "dd/MM/yyyy", "ar-BH" : "dd/MM/yyyy", "es-PY" : "dd/MM/yyyy", "ar-QA" : "dd/MM/yyyy", "es-BO" : "dd/MM/yyyy", "es-SV" : "dd/MM/yyyy", "es-HN" : "dd/MM/yyyy", "es-NI" : "dd/MM/yyyy", "es-PR" : "dd/MM/yyyy", "am-ET" : "d/M/yyyy", "tzm-Latn-DZ" : "dd-MM-yyyy", "iu-Latn-CA" : "d/MM/yyyy", "sma-NO" : "dd.MM.yyyy", "mn-Mong-CN" : "yyyy/M/d", "gd-GB" : "dd/MM/yyyy", "en-MY" : "d/M/yyyy", "prs-AF" : "dd/MM/yy", "bn-BD" : "dd-MM-yy", "wo-SN" : "dd/MM/yyyy", "rw-RW" : "M/d/yyyy", "qut-GT" : "dd/MM/yyyy", "sah-RU" : "MM.dd.yyyy", "gsw-FR" : "dd/MM/yyyy", "co-FR" : "dd/MM/yyyy", "oc-FR" : "dd/MM/yyyy", "mi-NZ" : "dd/MM/yyyy", "ga-IE" : "dd/MM/yyyy", "se-SE" : "yyyy-MM-dd", "br-FR" : "dd/MM/yyyy", "smn-FI" : "dMyyyy", "moh-CA" : "M/d/yyyy", "arn-CL" : "dd-MM-yyyy", "ii-CN" : "yyyy/M/d", "dsb-DE" : "d. M. yyyy", "ig-NG" : "d/M/yyyy", "kl-GL" : "dd-MM-yyyy", "lb-LU" : "dd/MM/yyyy", "ba-RU" : "dd.MM.yy", "nso-ZA" : "yyyy/MM/dd", "quz-BO" : "dd/MM/yyyy", "yo-NG" : "d/M/yyyy", "ha-Latn-NG" : "d/M/yyyy", "fil-PH" : "M/d/yyyy", "ps-AF" : "dd/MM/yy", "fy-NL" : "dM-yyyy", "ne-NP" : "M/d/yyyy", "se-NO" : "dd.MM.yyyy", "iu-Cans-CA" : "d/M/yyyy", "sr-Latn-RS" : "dMyyyy", "si-LK" : "yyyy-MM-dd", "sr-Cyrl-RS" : "dMyyyy", "lo-LA" : "dd/MM/yyyy", "km-KH" : "yyyy-MM-dd", "cy-GB" : "dd/MM/yyyy", "bo-CN" : "yyyy/M/d", "sms-FI" : "dMyyyy", "as-IN" : "dd-MM-yyyy", "ml-IN" : "dd-MM-yy", "en-IN" : "dd-MM-yyyy", "or-IN" : "dd-MM-yy", "bn-IN" : "dd-MM-yy", "tk-TM" : "dd.MM.yy", "bs-Latn-BA" : "dMyyyy", "mt-MT" : "dd/MM/yyyy", "sr-Cyrl-ME" : "dMyyyy", "se-FI" : "dMyyyy", "zu-ZA" : "yyyy/MM/dd", "xh-ZA" : "yyyy/MM/dd", "tn-ZA" : "yyyy/MM/dd", "hsb-DE" : "d. M. yyyy", "bs-Cyrl-BA" : "dMyyyy", "tg-Cyrl-TJ" : "dd.MM.yy", "sr-Latn-BA" : "dMyyyy", "smj-NO" : "dd.MM.yyyy", "rm-CH" : "dd/MM/yyyy", "smj-SE" : "yyyy-MM-dd", "quz-EC" : "dd/MM/yyyy", "quz-PE" : "dd/MM/yyyy", "hr-BA" : "dMyyyy.", "sr-Latn-ME" : "dMyyyy", "sma-SE" : "yyyy-MM-dd", "en-SG" : "d/M/yyyy", "ug-CN" : "yyyy-Md", "sr-Cyrl-BA" : "dMyyyy", "es-US" : "M/d/yyyy" }; return formats[navigator.language] || 'dd/MM/yyyy'; } 

Je pense que c'est la meilleure façon de le faire …

 var date = new Date(); var options = { weekday: "short", year: "numeric", month: "2-digit", day: "numeric" }; date.toLocaleDateString("en", options);//en is language option, you may specify.. 

Plus d'options et leurs exemples ….

  Option Values and sample output weekday narrow M short Mon long Monday year 2-digit 01 numeric 2001 month 2-digit 01 numeric 1 narrow J short Jan long January day 2-digit 01 numeric 1 hour 2-digit 12 AM numeric 12 AM minute 2-digit 0 numeric 0 second 2-digit 0 numeric 0 timeZoneName short 1/1/2001 GMT+00:00 long 1/1/2001 GMT+00:00 
 function getLocaleShortDateString(d) { var f={"ar-SA":"dd/MM/yy","bg-BG":"dd.M.yyyy","ca-ES":"dd/MM/yyyy","zh-TW":"yyyy/M/d","cs-CZ":"dMyyyy","da-DK":"dd-MM-yyyy","de-DE":"dd.MM.yyyy","el-GR":"d/M/yyyy","en-US":"M/d/yyyy","fi-FI":"dMyyyy","fr-FR":"dd/MM/yyyy","he-IL":"dd/MM/yyyy","hu-HU":"yyyy. MM. dd.","is-IS":"dMyyyy","it-IT":"dd/MM/yyyy","ja-JP":"yyyy/MM/dd","ko-KR":"yyyy-MM-dd","nl-NL":"dM-yyyy","nb-NO":"dd.MM.yyyy","pl-PL":"yyyy-MM-dd","pt-BR":"d/M/yyyy","ro-RO":"dd.MM.yyyy","ru-RU":"dd.MM.yyyy","hr-HR":"dMyyyy","sk-SK":"d. M. yyyy","sq-AL":"yyyy-MM-dd","sv-SE":"yyyy-MM-dd","th-TH":"d/M/yyyy","tr-TR":"dd.MM.yyyy","ur-PK":"dd/MM/yyyy","id-ID":"dd/MM/yyyy","uk-UA":"dd.MM.yyyy","be-BY":"dd.MM.yyyy","sl-SI":"dMyyyy","et-EE":"d.MM.yyyy","lv-LV":"yyyy.MM.dd.","lt-LT":"yyyy.MM.dd","fa-IR":"MM/dd/yyyy","vi-VN":"dd/MM/yyyy","hy-AM":"dd.MM.yyyy","az-Latn-AZ":"dd.MM.yyyy","eu-ES":"yyyy/MM/dd","mk-MK":"dd.MM.yyyy","af-ZA":"yyyy/MM/dd","ka-GE":"dd.MM.yyyy","fo-FO":"dd-MM-yyyy","hi-IN":"dd-MM-yyyy","ms-MY":"dd/MM/yyyy","kk-KZ":"dd.MM.yyyy","ky-KG":"dd.MM.yy","sw-KE":"M/d/yyyy","uz-Latn-UZ":"dd/MM yyyy","tt-RU":"dd.MM.yyyy","pa-IN":"dd-MM-yy","gu-IN":"dd-MM-yy","ta-IN":"dd-MM-yyyy","te-IN":"dd-MM-yy","kn-IN":"dd-MM-yy","mr-IN":"dd-MM-yyyy","sa-IN":"dd-MM-yyyy","mn-MN":"yy.MM.dd","gl-ES":"dd/MM/yy","kok-IN":"dd-MM-yyyy","syr-SY":"dd/MM/yyyy","dv-MV":"dd/MM/yy","ar-IQ":"dd/MM/yyyy","zh-CN":"yyyy/M/d","de-CH":"dd.MM.yyyy","en-GB":"dd/MM/yyyy","es-MX":"dd/MM/yyyy","fr-BE":"d/MM/yyyy","it-CH":"dd.MM.yyyy","nl-BE":"d/MM/yyyy","nn-NO":"dd.MM.yyyy","pt-PT":"dd-MM-yyyy","sr-Latn-CS":"dMyyyy","sv-FI":"dMyyyy","az-Cyrl-AZ":"dd.MM.yyyy","ms-BN":"dd/MM/yyyy","uz-Cyrl-UZ":"dd.MM.yyyy","ar-EG":"dd/MM/yyyy","zh-HK":"d/M/yyyy","de-AT":"dd.MM.yyyy","en-AU":"d/MM/yyyy","es-ES":"dd/MM/yyyy","fr-CA":"yyyy-MM-dd","sr-Cyrl-CS":"dMyyyy","ar-LY":"dd/MM/yyyy","zh-SG":"d/M/yyyy","de-LU":"dd.MM.yyyy","en-CA":"dd/MM/yyyy","es-GT":"dd/MM/yyyy","fr-CH":"dd.MM.yyyy","ar-DZ":"dd-MM-yyyy","zh-MO":"d/M/yyyy","de-LI":"dd.MM.yyyy","en-NZ":"d/MM/yyyy","es-CR":"dd/MM/yyyy","fr-LU":"dd/MM/yyyy","ar-MA":"dd-MM-yyyy","en-IE":"dd/MM/yyyy","es-PA":"MM/dd/yyyy","fr-MC":"dd/MM/yyyy","ar-TN":"dd-MM-yyyy","en-ZA":"yyyy/MM/dd","es-DO":"dd/MM/yyyy","ar-OM":"dd/MM/yyyy","en-JM":"dd/MM/yyyy","es-VE":"dd/MM/yyyy","ar-YE":"dd/MM/yyyy","en-029":"MM/dd/yyyy","es-CO":"dd/MM/yyyy","ar-SY":"dd/MM/yyyy","en-BZ":"dd/MM/yyyy","es-PE":"dd/MM/yyyy","ar-JO":"dd/MM/yyyy","en-TT":"dd/MM/yyyy","es-AR":"dd/MM/yyyy","ar-LB":"dd/MM/yyyy","en-ZW":"M/d/yyyy","es-EC":"dd/MM/yyyy","ar-KW":"dd/MM/yyyy","en-PH":"M/d/yyyy","es-CL":"dd-MM-yyyy","ar-AE":"dd/MM/yyyy","es-UY":"dd/MM/yyyy","ar-BH":"dd/MM/yyyy","es-PY":"dd/MM/yyyy","ar-QA":"dd/MM/yyyy","es-BO":"dd/MM/yyyy","es-SV":"dd/MM/yyyy","es-HN":"dd/MM/yyyy","es-NI":"dd/MM/yyyy","es-PR":"dd/MM/yyyy","am-ET":"d/M/yyyy","tzm-Latn-DZ":"dd-MM-yyyy","iu-Latn-CA":"d/MM/yyyy","sma-NO":"dd.MM.yyyy","mn-Mong-CN":"yyyy/M/d","gd-GB":"dd/MM/yyyy","en-MY":"d/M/yyyy","prs-AF":"dd/MM/yy","bn-BD":"dd-MM-yy","wo-SN":"dd/MM/yyyy","rw-RW":"M/d/yyyy","qut-GT":"dd/MM/yyyy","sah-RU":"MM.dd.yyyy","gsw-FR":"dd/MM/yyyy","co-FR":"dd/MM/yyyy","oc-FR":"dd/MM/yyyy","mi-NZ":"dd/MM/yyyy","ga-IE":"dd/MM/yyyy","se-SE":"yyyy-MM-dd","br-FR":"dd/MM/yyyy","smn-FI":"dMyyyy","moh-CA":"M/d/yyyy","arn-CL":"dd-MM-yyyy","ii-CN":"yyyy/M/d","dsb-DE":"d. M. yyyy","ig-NG":"d/M/yyyy","kl-GL":"dd-MM-yyyy","lb-LU":"dd/MM/yyyy","ba-RU":"dd.MM.yy","nso-ZA":"yyyy/MM/dd","quz-BO":"dd/MM/yyyy","yo-NG":"d/M/yyyy","ha-Latn-NG":"d/M/yyyy","fil-PH":"M/d/yyyy","ps-AF":"dd/MM/yy","fy-NL":"dM-yyyy","ne-NP":"M/d/yyyy","se-NO":"dd.MM.yyyy","iu-Cans-CA":"d/M/yyyy","sr-Latn-RS":"dMyyyy","si-LK":"yyyy-MM-dd","sr-Cyrl-RS":"dMyyyy","lo-LA":"dd/MM/yyyy","km-KH":"yyyy-MM-dd","cy-GB":"dd/MM/yyyy","bo-CN":"yyyy/M/d","sms-FI":"dMyyyy","as-IN":"dd-MM-yyyy","ml-IN":"dd-MM-yy","en-IN":"dd-MM-yyyy","or-IN":"dd-MM-yy","bn-IN":"dd-MM-yy","tk-TM":"dd.MM.yy","bs-Latn-BA":"dMyyyy","mt-MT":"dd/MM/yyyy","sr-Cyrl-ME":"dMyyyy","se-FI":"dMyyyy","zu-ZA":"yyyy/MM/dd","xh-ZA":"yyyy/MM/dd","tn-ZA":"yyyy/MM/dd","hsb-DE":"d. M. yyyy","bs-Cyrl-BA":"dMyyyy","tg-Cyrl-TJ":"dd.MM.yy","sr-Latn-BA":"dMyyyy","smj-NO":"dd.MM.yyyy","rm-CH":"dd/MM/yyyy","smj-SE":"yyyy-MM-dd","quz-EC":"dd/MM/yyyy","quz-PE":"dd/MM/yyyy","hr-BA":"dMyyyy.","sr-Latn-ME":"dMyyyy","sma-SE":"yyyy-MM-dd","en-SG":"d/M/yyyy","ug-CN":"yyyy-Md","sr-Cyrl-BA":"dMyyyy","es-US":"M/d/yyyy"}; var l=navigator.language?navigator.language:navigator['userLanguage'],y=d.getFullYear(),m=d.getMonth()+1,d=d.getDate(); f=(l in f)?f[l]:"MM/dd/yyyy"; function z(s){s=''+s;return s.length>1?s:'0'+s;} f=f.replace(/yyyy/,y);f=f.replace(/yy/,String(y).substr(2)); f=f.replace(/MM/,z(m));f=f.replace(/M/,m); f=f.replace(/dd/,z(d));f=f.replace(/d/,d); return f; } 

en utilisant:

 shortedDate=getLocaleShortDateString(new Date(1992, 0, 7)); 

Ne peut pas être fait.

Cross-browser JavaScript n'a aucun moyen d'utiliser le format actuel de date courte sélectionné par l'utilisateur sur les plates-formes qui offrent une telle personnalisation régionale. En outre, JavaScript a des trous énormes pour toute forme de formatage. Regardez combien de remèdes à zéro!

Vous pouvez aller très loin pour obtenir le paramètre de langue et obtenir le format typique pour cette localisation. C'est beaucoup de travail lorsque vous ne savez même pas si c'est la locale correcte (je parierais que les en-têtes de langue internationale sont souvent incorrects ou pas assez précis), ou si l'utilisateur a personnalisé le format à autre chose.

Vous pouvez essayer d'utiliser le client VBScript (qui a des fonctions pour toutes ces permutations de mise en forme régionales), mais ce n'est pas une bonne idée car c'est une technologie spécifique au morceau (mort?) IE.

Vous pouvez également essayer d'utiliser Java / Flash / Silverlight pour déterrer le format. Il s'agit également d'un travail supplémentaire, mais peut-être avoir les meilleures chances de succès. Vous souhaitez le mettre en cache pour que la session minimise les frais généraux.

J'espère que l'élément HTML5 <time> fournira un certain soulagement pour l'affichage de la date / heure i18n.

Je ne connais pas un moyen de le faire (vous pouvez obtenir la langue et essayer de déduire les paramètres régionaux).

J'ai essayé de faire un petit peu pour tenter de le faire (testé uniquement sur Firefox avec un lieu). Devrait fonctionner aussi longtemps que la chaîne de date courte inclut la date en tant que chiffres, donc il pourrait échouer pour, par exemple, en arabe. Il pourrait également avoir d'autres bugs, je ne connais pas toutes les particularités locales, ce n'est qu'un concept …

 function getShortDateFormat() { var d = new Date(1992, 0, 7); var s = d.toLocaleDateString(); function formatReplacer(str) { var num = parseInt(str); switch (num % 100) { case 92: return str.replace(/.{1}/g, "Y"); case 1: return str.length == 1 ? "mM" : "MM" case 7: return str.length == 1 ? "dD" : "DD" } } shortDateFormat = s.replace(/\d+/g, formatReplacer); return shortDateFormat; } getShortDateFormat(); 

Le format sorti sera:

  • Y: le nombre de chiffres pour représenter les années
  • DD = jour court (c.-à-d. Utiliser un seul chiffre si possible)
  • DD = format de jour long (c'est-à-dire deux chiffres toujours)
  • MM / MM – le même mois

Donc, dans mon navigateur, le format shortDate que vous obtenez est "MM / DD / AAAA".

https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat

L'objet Intl.DateTimeFormat est un constructeur pour les objets qui permettent la mise en forme de date et d'heure sensible au langage.

  var date = new Date(2014, 11, 31, 12, 30, 0); var formatter = new Intl.DateTimeFormat("ru"); console.log( formatter.format(date) ); // 31.12.2014 var formatter = new Intl.DateTimeFormat("en-US"); console.log( formatter.format(date) ); // 31.12.2014 

Format de votre zone actuelle:

  console.log( new Intl.DateTimeFormat(Intl.DateTimeFormat().resolvedOptions().locale). format(new Date())) 

Cela dépend de l'implémentation toLocaleDateString () du navigateur. Par exemple, en chrome, vous obtiendrez quelque chose comme: "Tuesday, January DD, AAAA"

Si votre question concernant le champ <input type="date"> , voici un script pour obtenir la value="" déposée value="" attribut:

 (new Date()).toISOString().split('T')[0] 

Vous pouvez utiliser l'objet Intl pour obtenir data-date-pattern="" :

 (new Intl.DateTimeFormat()).resolved.pattern // "M/d/y" for "en-US" in Google Chrome 

Et finalement, pour formater la date en l10n actuel, data-date="" :

 (new Intl.DateTimeFormat()).format(new Date()); 

Polyfill: https://github.com/andyearnshaw/Intl.js/issues/129

Il n'y a pas de moyen facile. Si vous voulez une solution fiable et multi-navigateur, vous devriez créer une table de consultation de la date et des chaînes de format d'heure, par culture. Pour formater une date, analysez la chaîne de format correspondante, extrayez les parties pertinentes de la date, c'est-à-dire le jour, le mois et l'année, et ajoutez-les ensemble.

C'est essentiellement ce que Microsoft fait avec leur bibliothèque AJAX, comme le montre la réponse @ no.

Légère modification de la réponse de Mitali. Pour générer dynamiquement la langue pour une solution plus localisée.

 var lang= window.navigator.userLanguage || window.navigator.language; var date = new Date(); var options = { weekday: "short", year: "numeric", month: "2-digit", day: "numeric" }; date.toLocaleDateString(lang, options); 

Trouvé ce fil en recherchant un moyen de générer des dates localisées mais courtes dans tous les navigateurs sans aucune bibliothèque supplémentaire, juste un appel simple pour formater les dates ISO générées par le serveur.

Je suis allé avec une combinaison de holden321 et les réponses de mwrf. Stockage des formats externes à la fonction car il est plus facile à gérer et à stocker le format local actuel car il est toujours utile.

La fonction peut transmettre tout ce qui peut être transmis à un constructeur de date pour obtenir une date valide, ainsi qu'une langue ou un format de flexibilité.

Vous devez configurer la liste des formats et quelques autres choses en premier:

 var LOCALE_DATE_FORMATS = { // as per mwrf's list ... } var LANG = window.navigator.userLanguage || window.navigator.language; var LOCALE_DATE_FORMAT = LOCALE_DATE_FORMATS[LANG] || 'dd/MM/yyyy'; 

Ensuite, la fonction est:

 function getLocalizedDate(o, options) { var res = ''; var date = new Date(o); if(o != null && !isNaN(date) && typeof(date.getFullYear) == 'function') { var d = date.getDate(); var dd = d < 10 ? '0' + d : d; var M = date.getMonth() + 1; var MM = M < 10 ? '0' + M : M; var yyyy = date.getFullYear(); var yy = new String(yyyy).substring(2); var format = LOCALE_DATE_FORMAT; if(options && options.lang) format = LOCALE_DATE_FORMATS[options.lang]; else if(options && options.format) format = options.format; res = format .replace(/dd/g, dd) .replace(/d/g, d) .replace(/MM/g, MM) .replace(/M/g, M) .replace(/yyyy/g, yyyy) .replace(/yy/g, yy); } return res; } 

getLocalizedDate('2013-03-01T00:00:00', {lang:'sk-SK'}) = 1. 3. 2013

EDIT: appel sans arguments pour utiliser les paramètres régionaux de l'utilisateur, bien sûr:

getLocalizedDate('2013-03-01T00:00:00') = 01/03/2013 (pour moi)

Si vous êtes fan de l'extension des prototypes, les premières lignes de la définition de la fonction deviennent:

 Date.prototype.getLocalized = function(options) { var date = this; 

Appelé bien sûr comme ceci:

new Date('2013-03-01T00:00:00').getLocalized({lang:'sk-SK'}) = 1. 3. 2013

EDIT: Encore une fois, appelez sans arguments pour utiliser les paramètres régionaux de l'utilisateur:

new Date('2013-03-01T00:00:00').getLocalized() = 01/03/2013 (pour moi)

Essayez d'utiliser Date.CultureInfo.formatPatterns.shortDate

Je crois que vous pouvez utiliser celui-ci: new Date (). ToLocaleDateString ();

Ce qui peut accepter des paramètres pour les paramètres régionaux: new Date (). ToLocaleDateString ("en-us"); Nouvelle Date (). ToLocaleDateString ("he-il");

Je vois qu'il est pris en charge par chrome, IE, edge, bien que les résultats puissent varier, cela fait un très bon travail pour moi.

Essaye ça:

 new Date().toLocaleFormat("%x"); 

Tous les formats de cette fonction peuvent être trouvés ici: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html