Introducción
En este laboratorio, aprenderemos a convertir una fecha al formato ISO extendido (ISO 8601), incluyendo el desplazamiento de zona horaria. Usaremos el método Date.prototype.getTimezoneOffset() para obtener el desplazamiento de zona horaria y revertirlo. Luego, definiremos una función auxiliar para normalizar cualquier número pasado a un entero y rellenarlo a 2 dígitos usando String.prototype.padStart(). Finalmente, usaremos los métodos integrados en el prototipo Date para construir la cadena ISO 8601 con desplazamiento de zona horaria. Al final de este laboratorio, tendrás una mejor comprensión de cómo manipular fechas en JavaScript.
Convertir fechas al formato ISO con zona horaria
Para convertir una fecha al formato ISO extendido (ISO 8601), incluyendo el desplazamiento de zona horaria, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a codificar. - Utilice
Date.prototype.getTimezoneOffset()para obtener el desplazamiento de zona horaria y revertirlo. Guarde su signo endiff. - Defina una función auxiliar,
pad(), que normalice cualquier número pasado a un entero usandoMath.floor()yMath.abs()y lo rellene a2dígitos, usandoString.prototype.padStart(). - Utilice
pad()y los métodos integrados en el prototipoDatepara construir la cadena ISO 8601 con desplazamiento de zona horaria.
Aquí está el código que puede utilizar:
const toISOStringWithTimezone = (date) => {
const tzOffset = -date.getTimezoneOffset();
const diff = tzOffset >= 0 ? "+" : "-";
const pad = (n) => `${Math.floor(Math.abs(n))}`.padStart(2, "0");
return (
date.getFullYear() +
"-" +
pad(date.getMonth() + 1) +
"-" +
pad(date.getDate()) +
"T" +
pad(date.getHours()) +
":" +
pad(date.getMinutes()) +
":" +
pad(date.getSeconds()) +
diff +
pad(tzOffset / 60) +
":" +
pad(tzOffset % 60)
);
};
Utilice la función toISOStringWithTimezone() con un objeto new Date() como argumento para obtener la fecha en formato ISO con desplazamiento de zona horaria. Por ejemplo:
toISOStringWithTimezone(new Date()); // '2020-10-06T20:43:33-04:00'
Resumen
¡Felicidades! Has completado el laboratorio de Conversión de Fechas al Formato ISO con Zona Horaria. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.