Ottieni il formato di data breve per le impostazioni internazionali usando javascript

È comunque ansible sapere utilizzando JavaScript il formato data breve utilizzato nel Pannello di controllo -> Impostazioni internazionali e della lingua?

So che usando la combinazione di seguito possiamo ottenere il formato Nome Locale

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

Ma non esiste una funzione diretta in JavaScript come toLocaleShortDateString() .

Ci sono degli script disponibili per scoprire quali sono le impostazioni dell’utente?

Grazie.

 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'; } 

Penso che questo sia il modo migliore per farlo …

  var date = new Date(); var options = { weekday: "short", year: "numeric", month: "2-digit", day: "numeric" }; console.log( date.toLocaleDateString("en", options) //en is language option, you may specify.. ); 
 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; } 

utilizzando:

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

Non può essere fatto

JavaScript cross-browser non ha modo di utilizzare il formato di data breve effettivo selezionato dall’utente su piattaforms che offrono tale personalizzazione regionale. Inoltre, JavaScript ha enormi buchi in cui è interessato qualsiasi tipo di formattazione. Guarda quanto è fastidioso lo zero padding!

Puoi fare di tutto per ottenere le impostazioni della lingua e ottenere il formato tipico per quella locale. Questo è molto lavoro quando non sai nemmeno se è il locale corretto (scommetto che le intestazioni di lingua internazionale sono spesso errate o non abbastanza specifiche), o se l’utente ha personalizzato il formato per qualcos’altro.

Puoi provare a utilizzare il client VBScript (che ha funzioni per tutte queste permutazioni di formattazione regionale), ma non è una buona idea perché è una tecnologia specifica per IE morente (morta?).

Puoi anche provare a utilizzare Java / Flash / Silverlight per recuperare il formato. Questa è anche una grande quantità di lavoro extra, ma potrebbe avere le migliori possibilità di successo. Vorresti metterlo nella cache per la sessione per minimizzare il sovraccarico.

Speriamo che l’elemento

Non conosco un modo per farlo (puoi ottenere la lingua e provare a dedurre la locale da quella).

Ho provato a cucinare qualcosa per provare a farlo (testato solo su Firefox con un locale). dovrebbe funzionare fino a quando la stringa della data breve include la data come cifre, quindi potrebbe fallire, per esempio, in arabo. Potrebbe avere anche altri bug, non conosco tutte le peculiarità dei diversi locali, questo è solo un concetto …

 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(); 

Il formato in uscita sarà:

  • Y: il numero di cifre per rappresentare anni
  • dD = giorno corto (ad es. usa solo una cifra quando ansible)
  • DD = formato giorno lungo (ovvero due cifre sempre)
  • mM / MM – stesso per mesi

Quindi nel mio browser, il formato dati breve che ottieni è “MM / GG / AAAA”.

Se la tua domanda sul campo , ecco lo script per ottenere l’attributo value=""

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

È ansible utilizzare l’object Intl ( ecma-402 ) per ottenere data-date-pattern="" :

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

E infine, per formattare la data in l10n corrente, data-date="" :

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

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

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

L’object Intl.DateTimeFormat è un costruttore per oggetti che consentono la formattazione di data e ora sensibile alla lingua.

  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 

formato della tua zona attuale:

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

Questo dipende dall’implementazione di toLocaleDateString () del browser. Ad esempio in chrome otterrai qualcosa come: “Tuesday, January DD, YYYY”

Non c’è un modo semplice. Se si desidera una soluzione affidabile e cross-browser, è necessario creare una tabella di riferimento di data e stringhe di formato dell’ora, per cultura. Per formattare una data, analizzare la stringa di formato corrispondente, estrarre le parti pertinenti dalla data, cioè giorno, mese, anno, e aggiungerle insieme.

Questo è essenzialmente ciò che Microsoft fa con la loro libreria AJAX, come mostrato nella risposta di @ no.

Trovato questo thread cercando un modo per generare date localizzate ma brevi in ​​tutti i browser senza alcuna libreria aggiuntiva, solo una semplice chiamata per formattare le date ISO generate dal server.

Sono andato con una combinazione di holden321 e le risposte di mwrf. Memorizzare i formati esterni alla funzione perché è più maneggevole in quel modo e memorizza il formato locale corrente perché è sempre utile.

La funzione può essere passata a tutto ciò che può essere passato a un costruttore di date per ottenere una data valida, e anche una lingua o un formato per la flessibilità.

È necessario impostare l’elenco dei formati e un paio di altre cose prima:

 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'; 

Quindi la funzione è:

 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: chiama senza argomenti per usare le impostazioni locali dell'utente, ovviamente:

getLocalizedDate('2013-03-01T00:00:00') = 01/03/2013 (per me)

Se sei un fan dell'estensione dei prototipi, le prime linee della definizione della funzione diventano:

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

Ovviamente chiamato così:

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

EDIT: di nuovo, chiama senza argomenti per usare le impostazioni locali dell'utente:

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

Leggera modifica alla risposta di Mitali. Generare dynamicmente la lingua per una soluzione più localizzata.

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

Prova a utilizzare Date.CultureInfo.formatPatterns.shortDate

Credo che tu possa usare questo: new Date (). ToLocaleDateString ();

Quale può accettare parametri per la localizzazione: new Date (). ToLocaleDateString (“en-us”); new Date (). toLocaleDateString (“he-il”);

Vedo che è supportato da chrome, IE, edge, anche se i risultati possono variare, per me è un buon lavoro.

Prova questo:

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

Tutti i formati per questa funzione possono essere trovati qui: http://pubs.opengroup.org/onlinepubs/007908799/xsh/strftime.html