Foros del Web » Programando para Internet » Javascript »

Restar dos Date, no funciona correctamente....

Estas en el tema de Restar dos Date, no funciona correctamente.... en el foro de Javascript en Foros del Web. Buenas foreros !!! A ver si podéis ayudarme con este pequeño problema. :) Quiero hacer que cuando se pulse un botón, empiece a contar desde ...
  #1 (permalink)  
Antiguo 19/10/2012, 05:02
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
Restar dos Date, no funciona correctamente....

Buenas foreros !!!

A ver si podéis ayudarme con este pequeño problema. :)

Quiero hacer que cuando se pulse un botón, empiece a contar desde el momento que se ha pulsado, mostrando el tiempo que ha pasado.

Para ello tengo lo siguiente, lo cual funciona correctamente (Pongo lo importante):

Código:
    //CLICK BOTON...
    var initTimeDate = new Date();
    window.setInterval(function () { UpdateTimeLabelUI(initTimeDate); }, 1000);
    //FIN CLICK BOTON

    function UpdateTimeLabelUI(timeParking) 
    {

        var currentDate = new Date();

        var elapsedTime = new Date(currentDate.getTime() - timeParking.getTime());

        $('#lblControlTime').html(elapsedTime.format("H:MM:ss"));
    }
Bien, funcionar funciona correctamente, excepto, por que en vez de empezar mostrándome 00:00:01 me muestra 01:00:01 !!!! Es decir, me muestra como si ya hubiese pasado 1 hora desde que se pulso el botón.

¿Saben que es lo que estoy haciendo mal, por favor?


Actualización:
Si puede servir de algo, estoy usando jquery y jquerymobile, ya que la aplicación web será para dispositivos moviles !!!
__________________
Charlie.

Última edición por chcma; 19/10/2012 a las 05:48
  #2 (permalink)  
Antiguo 19/10/2012, 09:25
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Restar dos Date, no funciona correctamente....

¿y si usas el timestamp unix?, está implementado en dicho objeto, solo averigüe
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 19/10/2012, 11:13
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Restar dos Date, no funciona correctamente....

Date crea la fecha a través del número de milisegundos transcurridos desde el 1 de enero de 1970.

Si le pasas la diferencia de milisegundos, simplemente se las sumará a esa fecha (teniendo en cuenta el GMT de donde vivas).

http://jsfiddle.net/marlanga/Ybq4X/

Abre la consola de javascript para ver lo que imprime (google chrome).
  #4 (permalink)  
Antiguo 19/10/2012, 13:02
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
Respuesta: Restar dos Date, no funciona correctamente....

He imprimido lo siguiente:

var initTimeDate = new Date();
console.log(initTimeDate);


Y me da como resultado la hora correcta. Actualmente aqui en españa son:
Fri Oct 19 2012 20:54:41 GMT+0200 (Hora de verano romance)


Sin embargo al ejecutar lo que os puse antes me sale lo siguiente:
Parking: Thu Jan 01 1970 01:00:08 GMT+0100 (Hora estándar romance)


Y ahí debe estar la historia... que no sé por que en uno me pone GMT+0100 y en otro GMT+0200
__________________
Charlie.

Última edición por chcma; 19/10/2012 a las 13:10
  #5 (permalink)  
Antiguo 19/10/2012, 13:25
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 21 años, 5 meses
Puntos: 7
Respuesta: Restar dos Date, no funciona correctamente....

Al final lo solucioné restando una hora... a tomar por saco. xD

Código:
    //timeParking: Parametro que indica la fecha y hora en la que se inicio el Parking.
    function UpdateTimeLabelUI(timeParking) {

        var currentDate = new Date();

        var elapsedTime = new Date(currentDate.getTime() - timeParking.getTime());

        elapsedTime.setHours(elapsedTime.getHours() - 1);

        $('#lblControlTime').html('Parking: ' + elapsedTime.format("H:MM:ss"));
    }
__________________
Charlie.

Etiquetas: date, funcion, html, restar, botones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:43.