Nombre del día de la semana según fecha en JavaScript
En este artículo sobre programación en JavaScript te mostraré cómo obtener el día de la semana según una fecha. Es decir, saber cuál día de la semana fue, y adicionalmente obtener su nombre.
Por ejemplo, hoy es lunes, así que el número del día de la semana es 1 (pues en JavaScript el domingo es 0) y el día es, aunque sea repetitivo, lunes.
Veamos algunas funciones para obtener esos resultados.
A partir de una fecha podemos crear un objeto de tipo Date
y después simplemente invocar al método getDay
. Esta función va a devolver un 0 para domingo, 1 para lunes y así hasta que sea 6 para sábado.
Veamos un ejemplo:
const fechaComoCadena = "2020-03-09 23:37:22"; // día lunes
const numeroDia = new Date(fechaComoCadena).getDay();
console.log("Número de día de la semana: ", numeroDia);
Al ejecutar el código el resultado es 1. Con eso podemos saber que es lunes. Puedes probar el ejemplo aquí.
Trabajando con arreglos y usando getDay
como índice podemos devolver el nombre del día a partir de una fecha. Así:
const fechaComoCadena = "2020-03-09 23:37:22"; // día lunes
const dias = [
'domingo',
'lunes',
'martes',
'miércoles',
'jueves',
'viernes',
'sábado',
];
const numeroDia = new Date(fechaComoCadena).getDay();
const nombreDia = dias[numeroDia];
console.log("Nombre de día de la semana: ", nombreDia);
Al ejecutar el código se imprime “lunes”. Puedes probarlo aquí.
Podemos encerrar el comportamiento de todo esto en una función que reciba la fecha y devuelva el nombre del día. Vamos a reducir un poco el código y a ahorrarnos algunas líneas, es decir, lo vamos a simplificar para que quede así:
const nombreDelDiaSegunFecha = fecha => {
return [
'domingo',
'lunes',
'martes',
'miércoles',
'jueves',
'viernes',
'sábado',
][new Date(fecha).getDay()];
}
Incluso podría quedar más corta:
const nombreDelDiaSegunFecha = fecha => [
'domingo',
'lunes',
'martes',
'miércoles',
'jueves',
'viernes',
'sábado',
'domingo',
][new Date(fecha).getDay()];
Por ahora mostramos con una fecha específica. Pero veamos otras fechas:
const nombreDelDiaSegunFecha = fecha => [
'domingo',
'lunes',
'martes',
'miércoles',
'jueves',
'viernes',
'sábado',
][new Date(fecha).getDay()];
const fechasParaProbar = [
"2013-01-18 17:00:00",
"2013-08-03 10:00:00",
"1997-06-21 22:00:00",
];
fechasParaProbar.forEach(fecha => {
console.log(`En ${fecha} fue ${nombreDelDiaSegunFecha(fecha)}`);
});
La salida es correcta:
Puedes probar el código en este enlace.
De este modo podemos indicar cuál día fue o saber el número de día. Puedes personalizar el algoritmo a tu gusto, yo solo te mostré un ejemplo.
Te invito a ver más sobre JavaScript en mi blog.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.
Ver comentarios
en el array de dias el ultimo domingo no esta demas? ese seria el indice 7 del array, pero getDay solo retorma un nuemro entre 0 y 6 cierto?
Hola. Tiene razón, ya lo he corregido, gracias.
Saludos!