Foros del Web » Programando para Internet » Javascript »

Cuenta atras con GMT

Estas en el tema de Cuenta atras con GMT en el foro de Javascript en Foros del Web. Buenas, Tengo un código en Javascript que funcionar, funciona perfectamente. El problema es que en mi página no entran solo personas de España y entonces, ...
  #1 (permalink)  
Antiguo 19/12/2010, 10:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 269
Antigüedad: 16 años, 2 meses
Puntos: 5
Busqueda Cuenta atras con GMT

Buenas,

Tengo un código en Javascript que funcionar, funciona perfectamente. El problema es que en mi página no entran solo personas de España y entonces, el código que utilizo queda relativamente inutil para ellos ya que se trata de una cuenta atrás y para ellos, la cuenta atrás llega a 0 mucho más tarde. Dejo el código:

Código Javascript:
Ver original
  1. var futuro = new Date("Dec 19, 2010 23:00");
  2. var actualiza = 1000;
  3. function faltan() {
  4.     var ahora = new Date();
  5.     var faltan = futuro - ahora;
  6.     if (faltan > 0) {
  7.         var segundos = Math.round(faltan / 1000);
  8.         var minutos = Math.floor(segundos / 60);
  9.         var segundos_s = segundos % 60;
  10.         var horas = Math.floor(minutos / 60);
  11.         var minutos_s = minutos % 60;
  12.         var dias = Math.floor(horas / 24);
  13.         var horas_s = horas % 24;
  14.         document.formulario.reloj.value = "Próxima Actualización: " + dias + " dias : " + horas_s + " horas : " +
  15.         +minutos_s + " minutos : " + segundos_s + " segundos (Recuerda que el Horario es GMT+1)" ;
  16.         setTimeout("faltan()", actualiza);
  17.     } else {
  18.         document.formulario.reloj.value= "En breve el foro sera cerrado por mantenimiento.";
  19.         return true;
  20.     }
  21. }

He probado varias funciones que he encontrado, que segun decian sus descripciones cambiaban el GMT (o UTC, que he leido que GMT a quedado obsoleto) pero todo lo que he probado hace que el código se estropee probablemente porque lo haré mal (soy completamente novato en javascript).

He pensado en hacerlo en PHP, que allí si sabria hacerlo pero cuando estaba abriendo el archivo he recordado que PHP no se puede ir actualizando y la gracia de la cuenta atrás es que vaya actualizandose en tiempo real. La idea seria poner la cuenta atrás en GMT+1 que es mi horario (almenos el de invierno, que es el de ahora) y es el que debe ser utilizado porque lo cerraré cuando llegue la hora en mi reloj y no en el de ellos XD

Espero que podais ayudarme porque ahora mismo el código solo es efectivo para los que estan viviendo en España.

Saludos
  #2 (permalink)  
Antiguo 19/12/2010, 14:29
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Cuenta atras con GMT

necesitas una fecha/hora de referencia, esa fecha/hora ha de ser la del servidor. claro tienes razón cuando dices que php no se puede actualizar de la manera que se necesita para hacer una cuenta regresiva. para eso tienes javascript.
por un lado tienes la fecha/hora tope. creas unas variables js (dia, mes...), a estas variables le asignas el día, mes ..... tomada del servidor y le sumas el tiempo que quieres, creas otra variable y le asignas el objeto new Date(), lo rellenas con las variables anteriormente creadas.
por otro lado, creas otra variable y le vuelves a asignar new Date(), usando los métodos getFullYear, getMonth, .... y le das el valor del año, mes, ... que has tomado del servidor.
finalmente restas las dos fechas. a estas dos fechas tienes que asignarle el método getTime()

Etiquetas: atras, gmt
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 20:37.