Foros del Web » Programando para Internet » Javascript »

Diferencia en horas de 2 fechas (Date)

Estas en el tema de Diferencia en horas de 2 fechas (Date) en el foro de Javascript en Foros del Web. Hola buenas, os vengo a preguntar un problema que tengo al intentar restar 2 fechas (aunque yo solo utilizo la hora del objeto Date) para ...
  #1 (permalink)  
Antiguo 11/05/2012, 08:55
 
Fecha de Ingreso: marzo-2010
Ubicación: Sevilla
Mensajes: 11
Antigüedad: 12 años, 3 meses
Puntos: 1
Pregunta Diferencia en horas de 2 fechas (Date)

Hola buenas, os vengo a preguntar un problema que tengo al intentar restar 2 fechas (aunque yo solo utilizo la hora del objeto Date) para obtener la diferencia en horas.
Un ejemplo del error que me da es:
Hora actual: 14:00 (UTC+2)
Hora Final: 22:00 (UTC+2)
Hora resta: 7:00 (UTC+1)

Para la resta hago un (new Date(fecha1.getTime()-fecha2.getTime());

¿Alguna sugerencia?

Muchas gracias, un saludo.
  #2 (permalink)  
Antiguo 11/05/2012, 11:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 15 años
Puntos: 1567
Respuesta: Diferencia en horas de 2 fechas (Date)

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function DiferenciaFechas (formulario) {
  9.  //Obtiene los datos del formulario
  10.   var CadenaFecha1 = formulario.fecha1.value
  11.   var CadenaFecha2 = formulario.fecha2.value
  12.   //Obtiene dia, mes y año
  13.   var fecha1 = new fecha( CadenaFecha1 )  
  14.   var fecha2 = new fecha( CadenaFecha2 )
  15.   //Obtiene objetos Date
  16.   var miFecha1 = new Date( fecha1.anio, fecha1.mes, fecha1.dia )
  17.   var miFecha2 = new Date( fecha2.anio, fecha2.mes, fecha2.dia )
  18.   //Resta fechas y redondea
  19.   var diferencia = miFecha1.getTime() - miFecha2.getTime()
  20.   var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24))
  21.   var segundos = Math.floor(diferencia / 1000)
  22.   alert ('La diferencia es de ' + dias + ' dias,\no ' + segundos + ' segundos.')
  23.  
  24.   return false
  25. }
  26.  
  27. function fecha( cadena ) {
  28.   var separador = "/"
  29.   if ( cadena.indexOf( separador ) != -1 ) {
  30.        var posi1 = 0
  31.        var posi2 = cadena.indexOf( separador, posi1 + 1 )
  32.        var posi3 = cadena.indexOf( separador, posi2 + 1 )
  33.        this.dia = cadena.substring( posi1, posi2 )
  34.        this.mes = cadena.substring( posi2 + 1, posi3 )
  35.        this.anio = cadena.substring( posi3 + 1, cadena.length )
  36.   } else {
  37.        this.dia = 0
  38.        this.mes = 0
  39.        this.anio = 0  
  40.   }
  41. }
  42. //]]>
  43. </head>
  44. <p>Formato dd/mm/aaaa</p>
  45. <form method="post" action="#" name="datosFechas" onsubmit="return DiferenciaFechas(this)" id="datosFechas">
  46. <p>Fecha 1 <input type="text" name="fecha1" size="12" /></p>
  47. <p>Fecha 2 <input type="text" name="fecha2" size="12" /></p>
  48. <p><input type="submit" name="Submit" value="Restar" /></p>
  49. </form>
  50. </body>
  51. </html>

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: date, diferencia, horas, utc
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 07:36.