En este momento tengo los valores del día como cadenas. (por ejemplo "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" ) pero sin fecha.
Los días describen el horario de apertura de una tienda y me gustaría traducir estos valores de cadena dinámicamente en función de la configuración regional establecida en la tienda.
Noté que JS tiene el maravilloso método Date.prototype.toLocaleDateString() pero no parece que pueda obtener la cadena localizada sin proporcionar una fecha. ¿Cómo haría usted para esto?
Eche un vistazo a Date.prototype.getDay
const weekdays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; const date = new Date(); // get first day of week, and then add the weekday let day = date.getDate() - date.getDay() + weekdays.indexOf("Saturday"); date.setDate(day) console.log(date.toString());Puede usar Date() tal vez
// fecha actual
let date = new Date();Además, podemos obtener un día de la semana:
getDay()Obtenga el día de la semana, de 0 (domingo) a 6 (sábado).
Al usar el método Date(), también puede verificar el año, el mes, el día y la hora. Tal vez si desea verificar que no sea el día de Navidad o después del horario de cierre, etc. ¡Debería funcionar bien!
Métodos:
getFullYear()Obtener el año (4 dígitos)
getMonth()Obtener el mes, del 0 al 11.
getDate()Obtenga el día del mes, del 1 al 31, el nombre del método parece un poco extraño.
getHours(), getMinutes(), getSeconds(), getMilliseconds()Obtenga los componentes de tiempo correspondientes.
Simplemente cree un nuevo objeto de fecha que apunte a cualquier lunes, luego agregue días consecutivos mientras llama a date.ToLocaleDateString(LOC, {weekday: 'long'}) , reemplace LOC con cualquier configuración regional que desee usar, para definir en qué idioma como obtener los nombres de las semanas.
function listDayNames(elem, locale) { let e = document.getElementById(elem); let date = new Date('2022/08/22'); for(let i=0;i<=6;i++) { e.innerHTML += date.toLocaleDateString(locale, { weekday: 'long' }) + '<br>'; date.setDate(date.getDate() + 1); } e.innerHTML += '<hr>'; } let date = new Date(); listDayNames('days', 'en-US'); listDayNames('days', 'de-DE'); <p id="days"></p>