2012-05-26 15 views
7

Me gustaría obtener los nombres de los días de las semanas en JavaScript, localizados en el idioma actual del usuario; preferiblemente con algo un poco mejor que lo que estoy usando ahora:Obteniendo el día de la semana localizado

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

¿Hay una manera fácil de hacer esto? ¿O voy a tener que proporcionar cadenas de fechas para tantos locales como pueda?

+0

No puedo pensar en ninguna otra manera de hacerlo, pero si usted está almacenando los días de En la semana, puede inicializar la fecha a un lunes en lugar de pasar por el primer ciclo while. Luego recorra todos los días de la semana y guarde en caché esos valores dentro de la matriz de los días de la semana. – Travis

+0

Me gustaría advertirle que 'toLocaleDateString' no parece ser confiable. Estoy en una versión holandesa de Windows y Chrome, pero obtengo una serie de nombres de días de la semana en inglés. – pimvdb

Respuesta

14

utilizo Date.toLocaleString(), por ejemplo:

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

o

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

¡Huh! Aunque estaba usando eso en la pregunta, ¡nunca supe que tomó argumentos! Gracias. – Ryan

4

Eche un vistazo a datejs, maneja la localización muy bien. Viene con muchas configuraciones de globalización. Simplemente carga la configuración de globalización de su CultureInfo actual y datejs se ocupa del resto.

Javascript Date Localization

Cuestiones relacionadas