Clase Date en Javascript/NodeJS
La clase Date en javascript nos permite gestionar fechas a través del formato ISO 8601 y diversos métodos para la manipulación de las diferentes partes de una fecha completa.
Ahora bien, el formato ISO 8601 es un estándar ampliamente utilizado para representar fechas y horas de una forma legible y bien definida.
En este formato específico:
«2023-05-20» representa la fecha en formato «año-mes-día».
«T» es simplemente un separador entre la parte de la fecha y la parte de la hora.
«13:28:57.477» representa la hora en formato «horas:minutos:segundos.milisegundos».
«Z» al final indica que la fecha y la hora están en el huso horario UTC.
A través de la clase Date podemos acceder a los diversos métodos:
const fecha = new Date(); const año = fecha.getFullYear(); // Obtiene el año (ejemplo: 2023) const mes = fecha.getMonth(); // Obtiene el mes (0 para enero, 11 para diciembre) const dia = fecha.getDate(); // Obtiene el día del mes (1-31) const hora = fecha.getHours(); // Obtiene la hora (0-23) const minutos = fecha.getMinutes(); // Obtiene los minutos (0-59) const segundos = fecha.getSeconds(); // Obtiene los segundos (0-59)
Por lo que a continuación presentaremos un segmento de código que permita entender como generar un formato de tipo yyyy-mm-dd:
const formatDate = (d = null) => { const current_date = new Date(d); const year = current_date.getFullYear(); const month = String(current_date.getMonth() + 1).padStart(2, '0'); const day = String(current_date.getDate()).padStart(2, '0'); const formatted_date = year+"-"+month+"-"+day; return formatted_date; } const resp = formatDate("2020-04-17T13:28:57.477Z"); console.log("Fecha formateada: ", resp);
En este ejemplo, getFullYear() devuelve el año actual, getMonth() devuelve el mes actual (teniendo en cuenta que los meses empiezan en 0) y getDate() devuelve el día del mes actual. Luego, utilizamos String() para convertir el mes y el día en cadenas y padStart() para asegurarnos de que tengan dos dígitos, agregando un cero inicial si es necesario. Por último, concatenamos los componentes de la fecha utilizando guiones para obtener el formato «yyyy-mm-dd».