Tengo esta función que devuelve los días de la semana:
var SEPARATOR = ' '; function week_days(lang) { var result = []; for (var i = 0; i <= 6; ++i) { var d = new Date(1970, 1, 1 + i); result.push(d.toLocaleString(lang, {weekday: 'short'}).substring(0, 2)); } return result.join(SEPARATOR); } console.log("en-us", week_days("en-us")) console.log("pl-pl", week_days("pl-pl"))pero está arreglado y comienza desde el domingo como en el local de EE. UU. Pero en la localidad polaca, la semana comienza el lunes. Probablemente hay idiomas que usan uno u otro.
Puedo usar new Date(1970, 1, 2 + i); y funcionará, pero ¿cómo puedo hacerlo basado en Locale? (por ejemplo window.navigator.language ).
Descubrí que la especificación no tiene forma de conocer esta información. Se rastrea aquí:
https://github.com/tc39/ecma402/issues/6
Este es un problema antiguo. De los comentarios, parece que hay una especificación:
https://github.com/tc39/proposal-intl-locale-info
Eso debería manejar esto.