2012-05-26 15 views
7

Mi piacerebbe ottenere i nomi dei giorni delle settimane in JavaScript, localizzati nella lingua corrente dell'utente; preferibilmente con qualcosa di più bello di quello che sto usando ora:Ottenere localizzato giorno della settimana

var weekDays = []; 
var d = new Date(); 

while(d.getDay() > 0) { 
    d.setDate(d.getDate() + 1); 
} 

while(weekDays.length < 7) { 
    weekDays.push(d.toLocaleDateString().match(/\w+/)[0]); 
    d.setDate(d.getDate() + 1); 
} 

C'è un modo semplice per fare questo? O devo solo fornire stringhe di date per il maggior numero di locali possibile?

+0

non riesco a pensare a nessun altro modo per farlo, ma se si sono appena memorizzando i giorni di la settimana, puoi semplicemente inizializzare la data a lunedì invece di passare attraverso il primo ciclo while. Quindi passa in rassegna ogni giorno della settimana e memorizza nella cache quei valori all'interno dell'array dei giorni feriali. – Travis

+0

Vorrei avvisarvi che 'toLocaleDateString' non sembra affidabile. Sono in una versione olandese di Windows e Chrome, tuttavia ottengo una serie di nomi dei giorni della settimana in inglese. – pimvdb

risposta

14

io uso Date.toLocaleString(), ad esempio:

d = new Date(); 
d.toLocaleString(window.navigator.language, {weekday: 'long'}); 

o

d.toLocaleString('sk-SK', {weekday: 'short'}); 
+0

Huh! Sebbene stavo usando quello nella domanda, non ho mai saputo che ci volevano argomenti! Grazie. – Ryan

4

Date un'occhiata a datejs, gestisce la localizzazione molto bene. Viene fornito con un sacco di impostazioni di globalizzazione. Basta caricare l'impostazione di globalizzazione del tuo attuale CultureInfo e datejs si prenderà cura di tutto il resto.

Javascript Date Localization

Problemi correlati