JavaScript: obtener día de la semana según fecha

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.

getDay para día de la semana

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í.

Nombre del día de la semana en JavaScript

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í.

Encerrando en una función

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()];

Más ejemplos

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:

Nombre del día de la semana según fecha en JavaScript

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

2 comentarios en “JavaScript: obtener día de la semana según fecha”

  1. 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?

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *