Hola a todos!!
Hoy vamos a trabajar con fechas en Typescript en entorno Script Lab. Como ya os he comentado en alguna ocasión, el tratamiento de las fechas con Typescript puede ser complejo, sobre todo cuando venimos de lenguajes de programación como VBA.
En el ejemplo de hoy os voy a mostrar como podemos conseguir formatear una fecha a «dd/mm/aaaa» y realizar otras composiciones con ese formato o pasar una fecha numérica a fecha con literales: «sábado, 31 de diciembre de 2022»
Esto lo podremos hacer con la siguiente función:
/**
* @customfunction
* @param {number[][]}
* @returns {number[][]}
*/
function fechaLiteral(mifecha) {
var ini = new Date(Math.round((mifecha - 25569) * 86400 * 1000)).toLocaleDateString("en-US");
//optenemos la fecha que hemos seleccionado
var nIni = new Date(Date.parse(ini) + 1 * 24 * 60 * 60 * 1000);
var fecha = ('0' + nIni.getUTCDate()).slice(-2) + '/'
+ ('0' + (nIni.getUTCMonth() + 1)).slice(-2) + '/'
+ nIni.getUTCFullYear();
//mostramos la fecha de modo literal
var date = new Date(ini);
var opciones = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var fechaLit= date.toLocaleDateString('es-Es', opciones);
//preparamos los datos en tuplas para mostrar
var resultado1 = ['Fecha seleccionada', fecha];
var resultado2 = ['Fecha formateada', fechaLit];
//pasamos el resultado a la función
return [resultado1, resultado2]
};
Este código seleccionará un fecha y mostrará la siguiente salida:
El resultado 1, que expresa la fecha según nos interese, es decir, tendremos que componer la fecha como necesitemos, tan solo hay que concatenar la cadena: en este ejemplo va el día/mes/año. Pero podríamos formatear pro ejemplo: año/mes/día
var fecha = ('0' + nIni.getUTCDate()).slice(-2) + '/'
+ ('0' + (nIni.getUTCMonth() + 1)).slice(-2) + '/'
+ nIni.getUTCFullYear();
La segunda salida es el resultado 2, donde utilizando uno de los parámetros de la función toLocaleDateString(), vamos a especificar de la fecha que hemos seleccionado (y transformado), el día de la semana, el mes del año, el año y el día
var date = new Date(ini);
var opciones = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
var fechaLit= date.toLocaleDateString('es-Es', opciones);
El resultado es el siguiente:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2022/05/FORMATEAR-FECHA-SELECCIONADA-EN-EXCEL-CON-TYPESCRIPT_1.png?resize=1024%2C450&ssl=1)
Es posible que tengáis que realizar otro tipo de formatos, pero ya los iremos viendo poco a poco. De momento os dejo este post.
Y esto es todo!!. Espero que sea de utilidad.
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies