JavaScript » Convertir una cadena a fecha en Javascript
En este ejemplo vamos a ver cómo podemos convertir una cadena a una fecha, es decir un elemento Date, en Javascript. A primeras parece que pensar que es algo tan trivial como pasarselo en la inicialización. Pero veremos que tenemos ciertas restricciones.
Y es que en el fondo, sí, podemos escribir la siguiente línea de código:
var fecha = new Date("Sat, 4 Feb 2012");
Pero, ¿qué podemos utilizar como cadena de texto? Lo que podemos utilizar es todo aquello que podamos analizar mediante el método .parse() del objeto Date.
Date.parse(cadena);
Y si miramos qué soporta el método .parse() veremos que el texto que le pasemos tiene que estar en formato RFC822 o ISO 8601. Así el método nos devolverá los milisegundos desde el 1 de enero de 1970.
Si no te apetece leerte que dicen los estándares RFC822 y ISO 8601 te lo resumiremos en que tienen que ser fechas en formato:
dia_semana, dia hora yyyy-mm-dd
Y formatos similares. Así el 4 de febrero del 2012 podría declararse como:
Sat 4 Feb 2012 12:20:34 2012-02-04
Nosotros, para evitar formateos adicionales vamos a montar la fecha por nuestra cuenta, así que utilizaremos un formulario para pedirle al usuario los datos. El formulario será el siguiente:
<button id="calcular">Calcular Fecha</button> </form>
Y ahora, controlando el evento de pulsar sobre el botón, es decir, utilizando un addEventListener()
var boton = document.getElementById("calcular"); boton.addEventListener("click",function(ev){ ... },false);
Vamos a componer nuestra fecha. Obtenemos los valores del formulario y componemos la fecha en formato yyyy-mm-dd
dia = document.getElementById("dia").value; mes = document.getElementById("mes").value; annio = document.getElementById("annio").value; fecha_texto = annio+"-"+mes+"-"+dia;
Lo siguiente será parsearla y crear una fecha (aunque podríamos haber hecho solo lo segundo)
ms = Date.parse(fecha_texto); fecha = new Date(ms);
Por último volcamos el contenido del Date a un campo y bloqueamos que se lance el evento del botón con .preventDefault() para poder ver el resultado y no enviar el formulario.
document.getElementById("fecha").innerHTML = fecha; ev.preventDefault();
El código entero del manejador quedaría de la siguiente forma:
var boton = document.getElementById("calcular"); boton.addEventListener("click",function(ev){ dia = document.getElementById("dia").value; mes = document.getElementById("mes").value; annio = document.getElementById("annio").value; fecha_texto = annio+"-"+mes+"-"+dia; ms = Date.parse(fecha_texto); fecha = new Date(ms); document.getElementById("fecha").innerHTML = fecha; ev.preventDefault(); },false);
![]() Visualiza el artículo | ![]() Descargar el código | ![]() Error en el código | ![]() Foro sobre Javascript |
Artículos relacionados:










enero 29, 2012 #
Información Bitacoras.com…
Valora en Bitacoras.com: En este ejemplo vamos a ver cómo podemos convertir una cadena a una fecha, es decir un elemento Date, en Javascript. A primeras parece que pensar que es algo tan trivial como pasarselo en la inicialización. Pero veremos que……
enero 30, 2012 #
[...] = new Date();Ahora cogeremos la fecha del usuario. Para ello ya vimos en el ejemplo de cómo convertir una cadena de texto en una fecha los pasos que teníamos que seguir:var boton = [...]
enero 30, 2012 #
[...] Convertir una cadena a fecha en Javascript [...]