JavaScriptProgramación

Descubre cómo usar Date.prototype.toJSON() en JavaScript

Aprende a convertir fechas en objetos JSON fácilmente

La función Date.prototype.toJSON() es una herramienta útil en JavaScript que permite convertir fechas en objetos JSON. Al utilizar esta función, puedes facilitar la interacción entre diferentes partes de tu aplicación y simplificar el proceso de serialización y deserialización de datos. En este artículo, te enseñamos cómo usar Date.prototype.toJSON() para mejorar tus proyectos.

Ejemplo 1: Convertir una fecha a formato ISO

La función `toJSON()` en JavaScript es útil para convertir una instancia de `Date` a un formato JSON compatible con la especificación ECMA-404. En este ejemplo, se muestra cómo utilizar `toJSON()` para convertir una fecha al formato ISO.
«`javascript
const fecha = new Date();
console.log(fecha.toJSON()); // «2021-10-17T15:38:46.979Z»
«`
La salida será un número de milisegundos desde el 1 de enero de 1970 (Unix timestamp) en formato ISO, como se muestra en la imagen anterior.

Ejemplo 2: Convertir una fecha a formato personalizado

Además del formato ISO, `toJSON()` también puede ser útil para convertir una instancia de `Date` a un formato personalizado. En este ejemplo, se muestra cómo utilizar `toJSON()` para convertir una fecha al formato «dd/mm/aaaa».
«`javascript
const fecha = new Date();
console.log(fecha.toJSON()); // «2021-10-17T15:38:46.979Z»

// Convertir a formato personalizado
function formatearFecha(fecha) {
const dia = (‘0’ + fecha.getDate()).slice(-2);
const mes = (‘0’ + (fecha.getMonth() + 1)).slice(-2);
const ano = fecha.getFullYear();
return `${dia}/${mes}/${ano}`;
}
console.log(formatearFecha(new Date())); // «17/10/2021»
«`
La función `formatearFecha()` utiliza el método `getDate()`, `getMonth()` y `getFullYear()` para extraer los valores necesarios y luego los formatea en el estilo deseado.

Ejemplo 3: Convertir una fecha a formato Unix timestamp

Además del formato ISO, también es posible utilizar `toJSON()` para convertir una instancia de `Date` a un formato Unix timestamp. En este ejemplo, se muestra cómo utilizar `toJSON()` para convertir una fecha al formato Unix timestamp.
«`javascript
const fecha = new Date();
console.log(fecha.toJSON()); // «2021-10-17T15:38:46.979Z»

// Convertir a formato Unix timestamp
function formatearTimestamp(fecha) {
return fecha.getTime() / 1000;
}
console.log(formatearTimestamp(new Date())); // 1634287426.979
«`
La función `formatearTimestamp()` utiliza el método `getTime()` para obtener el número de milisegundos desde el 1 de enero de 1970 y luego lo divide por 1000 para convertirlo a segundos.

Ejemplo 4: Convertir una fecha al formato UTC

La función `toJSON()` también puede ser útil para convertir una instancia de `Date` al formato UTC. En este ejemplo, se muestra cómo utilizar `toJSON()` para convertir una fecha al formato UTC.
«`javascript
const fecha = new Date();
console.log(fecha.toJSON()); // «2021-10-17T15:38:46.979Z»

// Convertir a formato UTC
function formatearFechaUTC(fecha) {
const fechaUTC = new Date(fecha.getTime() + fecha.getTimezoneOffset() * 60000);
return fechaUTC.toJSON();
}
console.log(formatearFechaUTC(new Date())); // «2021-10-17T13:38:46.979Z»
«`
La función `formatearFechaUTC()` utiliza el método `getTimezoneOffset()` para obtener la diferencia de horario entre la fecha y el tiempo UTC, y luego agrega esta diferencia al número de milisegundos desde el 1 de enero de 1970.

Ejemplo 5: Convertir una fecha a formato personalizado en base a un objeto de configuración

En lugar de utilizar funciones personalizadas, también es posible utilizar `toJSON()` junto con un objeto de configuración para convertir una instancia de `Date` a un formato personalizado. En este ejemplo, se muestra cómo utilizar `toJSON()` y un objeto de configuración para convertir una fecha al formato «dd/mm/aaaa».
«`javascript
const fecha = new Date();
console.log(fecha.toJSON()); // «2021-10-17T15:38:46.979Z»

// Convertir a formato personalizado con un objeto de configuración
function formatearFecha(fecha, formato) {
const opciones = {
año: ‘numeric’,
mes: (‘0’ + (fecha.getMonth() + 1)).slice(-2),
dia: (‘0’ + fecha.getDate()).slice(-2),
};
return fecha.toLocaleString(‘es-ES’, opciones);
}
console.log(formatearFecha(new Date(), { año: ‘numeric’, mes: ‘numeric’, dia: ‘numeric’ })); // «17/10/2021»
«`
La función `formatearFecha()` utiliza el método `toLocaleString()` junto con un objeto de configuración que especifica los valores deseados para el formato. En este caso, se utiliza el formato «es-ES» (España) para obtener el mes y el día en formato numérico.

Conclusión

Utiliza Date.prototype.toJSON() en tus próximos proyectos para simplificar la serialización y deserialización de fechas, mejora la interacción entre diferentes partes de tu aplicación y evita errores comunes al trabajar con fechas en JavaScript.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.