Leer Fechas en Javascript

Para Javascript la fecha no es solo el día, también incluye datos sobre la hora completa.

Como Date es un constructor, estos métodos pueden llamarse a través de una instancia del objeto, es decir, mediante una variable. Podemos construir obejtos derivados de Date: instanciar el constructor

Con estos métodos se pueden leer desde fechas - horas completas hasta partes la misma , como año, mes, dia del mes o dia de la semana, horas, minutos, segundos o milisegundos.

Este primer grupo lee fechas según horario regional o local del navegador

  • getDate(): lee día
  • getDay(): lee el día de la semana
  • getMonth(): lee el numero del mes
  • getFullYear(): lee el año con 4 dígitos

Este segundo grupo lee fechas pero usando el uso horario internacional, lo que antes se concocía como GMT

  • getUTCDate(): lee día (zona UTC)
  • getUTCDay(): lee el día de la semana (zona UTC)
  • getUTCMonth(): lee el numero del mes (zona UTC)
  • getUTCFullYear(): lee el año con 4 dígitos (zona UTC)

El primero de todos los métodos fecha.getDate() y su equivalente para UTC getUTCDate(), pueden leer el día del mes, un número entre 1 y 28,19,30 o 31 según el mes de la fecha.

El método getDay()/getUTCDay() devuelve el día de la semana, tomando ell valor cero para el domingo. El nombre del día se debe conseguir a partir de una fucnión creada en el script.

Por su parte getMonth()/getUTCMonth() devuelve el mes correspondietne a la fecha en fomra de número. El valor 0 corresponde al primer mes del año Enero y el 11 sería Diciembre. El nombre se debe obtener mediante una función creada en el script.

Por último getFullYear()/getUTCFullYear() devuelve el mes includio en la fecha como un entero de 4 dígitos.

Todos estos métodos se invocan medante un objeto de tipo fecha (Date)

var hoy = new Date();

var diaSem = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves','Viernes','Sábado'];

var nombMes = ['Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

console.log( "Dia del mes :"+ hoy.getDate() );

console.log( "Dia de semana:"+ diaSem[ hoy.getDay() ]);

console.log( "Mes :"+ nombMes[ hoy.getMonth() ]);

console.log( "Año :"+ hoy.getFullYear() );

Como ves una simple array permite tener los nombres de los dias o los meses, al menos en castellano. Para un sistema internacionalizable podría construirse una función para esto o agregarle un método al objeto Date()

Date.prototype.diaSem = function(){

var diaSem = ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves','Viernes','Sábado'];

return diaSem[ this.getDay() ]

}

Date.prototype.nomMes = function(){

var nombMes = ['Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'];

return nombMes[this.getMonth() ];

}

var dia1 = new Date("2021, 5, 16");     //16 Mayo 2021
var dia2 = new Date("2021, 5, 17");     //17 Mayo 2021

console.log( "Dia1 es:"+ dia1.diaSem() );

console.log( "Dia2 es:"+ dia2.diaSem() );

console.log( "Mes :"+ dia1.nomMes() )

Esos ejemplos usan la versión horaria regional, y los resultados dependen de la zona horario. Iigualmente se puede usar la versión pra el horario UTC, los resultados serían siempre los mismos independientemente del lugar donde se ejecute el script.