Hay muchas ocasiones en las que necesitamos realizar cálculos con fechas en javascript o enviarlas como parámetro en la llamada a un servicio web mediante Ajax y tenemos problemas al convertir esa fecha recogida de un campo de texto al tipo Date.
En esta entrada os traigo una función con la que podréis convertir, de forma rápida, una cadena de texto con una fecha al tipo Date en JavaScript.
Como sabréis al inicializar una variable de tipo Date en JavaScript con un valor concreto, debemos indicar los datos de la fecha en el siguiente orden; año, mes y día. Orden distinto al que tendrán los datos de la fecha que recojamos de un input de tipo text, que normalmente estará en el formato dd/mm/yyyy.
Para ayudaros con la conversión de esos datos y que podáis realizar operaciones con las fechas o enviarlas como parámetros en algún servicio web, aquí os dejo dos líneas de código con la que podréis pasar rápidamente una cadena de texto con el formato dd/mm/yyyy a una variable de tipo Date en JavaScript.
function formatStringToDate(text) { var myDate = text.split('/'); return new Date(myDate[2], myDate[1] - 1, myDate[0]); }
NOTA: Si la fecha que queremos convertir, tuviese otro carácter separador entre los días, meses y años, bastaría con cambiar ese carácter en el método split().
Una vez que tengamos el vector con los datos de la fecha por separado, únicamente tenemos que inicializar la variable Date pasando los datos en el orden comentado anteriormente.
Tened presente que los meses en JavaScript se representan de 0 a 11. Es decir, para hacer referencia a Enero, debemos poner 0 y no 1, por eso restamos 1 al indicar el mes en la segunda línea del método.
Espero que te haya servido de ayuda esta entrada, si es así te agradecería un comentario o un compartir.