JavaScript - Convertir cadena en tiempo

 
Vista:
sin imagen de perfil

Convertir cadena en tiempo

Publicado por Alejandro (7 intervenciones) el 01/02/2017 15:40:31
Hola a todos.

Necesito hacer una función que reciba como parámetro una cadena de tiempo (con un formato especifico) y la convierta a segundos. Pongo un ejemplo:

El formato de la cadena, con todas las opciones, sera algo como "Xh Ym Zs" y eso tengo que devolverlo como un entero calculado como X*3600+Y*60+Z. Pero en ciertos casos, alguno de los componentes de la cadena puede no aparecer. Por ejemplo, me puede llegar algo como "20m 10s" y debería devolver 20*60+10=1210.

¿Me podríais ayudar a transformar ese patrón en segundos? Llevo un buen rato dándole vueltas y no se me ocurre nada rápido.

Gracias de antemano por cualquier ayuda que me podáis facilitar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Convertir cadena en tiempo

Publicado por xve (2100 intervenciones) el 01/02/2017 19:23:32
Hola Alejandro, aqui te he preparado un código que hace exactamente lo que quieres...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script>
calculo={
	"h":3600,
	"m":60,
	"s":1
	}
a="1h 20m 10s";
valores=a.split(" ");
totalSegundos=0;
valores.forEach(function(e) {
	for (var k in calculo) {
		if(e.substr(-1)==k)
		{
			totalSegundos=totalSegundos+(parseInt(e.substr(0,e.length-1))*calculo[k])
		}
	}
});
document.write(totalSegundos);
</script>

Si hay algo que no entiendes, coméntame, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Convertir cadena en tiempo

Publicado por Alejandro (7 intervenciones) el 02/02/2017 10:33:23
Me viene perfecto, gracias.
Ahora solo me queda montar la expresion regular que valide la cadena que me llega. ¿Sabrias como montarla? Cualquiera de los 3 elementos puede no aparecer y los que aparezcan deben estar separados por un espacio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar