Foros del Web » Programando para Internet » Javascript »

Problemas; Rotar Imagen segun hora del dia

Estas en el tema de Problemas; Rotar Imagen segun hora del dia en el foro de Javascript en Foros del Web. Amigos! tengo un script, el cual rota imagenes cada hora indicada, es decir, son las 14 Hs. muestra imagen 01, cuando son las 15 Hs. ...
  #1 (permalink)  
Antiguo 30/07/2012, 16:37
 
Fecha de Ingreso: julio-2012
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Problemas; Rotar Imagen segun hora del dia

Amigos! tengo un script, el cual rota imagenes cada hora indicada, es decir, son las 14 Hs. muestra imagen 01, cuando son las 15 Hs. muestra imagen 2 y asi...
mi problema es el "x=day.getHours()" porque me esta tomando la hora del usuario y no la del servidor... necesito que tome la hora del servidor o de alguno de referencia para que por ejemplo, una web de una radio o canal de tv, transmita un programa a las 15 Hs en argentina, se vea la foto del conductor tanto en argentina como en australia, que tiene otro horario.. se entiende? es decir que no importe la hora que cada usuario tenga en su computador si no que siempre tome la referencia de argentina.
desde ya agradezco su cooperacion!
besos
Aqui el codigo:

<script language="JavaScript">
<!--
day=new Date() //Programacion Lunes

x=day.getHours()


if(x>=0 && x<1) {


document.write('<img src="/32.png">')

} else

if(x>=1 && x<6) {

document.write('<img src="/00.png">')

}

<!-- End Hiding -->

</script>
  #2 (permalink)  
Antiguo 30/07/2012, 16:49
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Problemas; Rotar Imagen segun hora del dia

NEcesitas cargar la hora del servidor. Para ello usa PHP

$d = new DateTime("now", new DateTimeZone("America/Argentina/Buenos_Aires"));
echo $d->format(constante);
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #3 (permalink)  
Antiguo 30/07/2012, 16:51
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas; Rotar Imagen segun hora del dia

Javascript trabaja con la hora del cliente. Deberías obtenerla con php (funcion date()) y también verificar la zona horaria del server y hacer las correciones si fuera necesario (a veces contratás un hosting en la argentina, pero resulta que el server está en lituania)

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

Última edición por emprear; 30/07/2012 a las 20:28 Razón: gramática
  #4 (permalink)  
Antiguo 30/07/2012, 18:38
(Desactivado)
 
Fecha de Ingreso: noviembre-2002
Ubicación: Ciudad Autónoma de Buenos Aires
Mensajes: 2.367
Antigüedad: 21 años, 5 meses
Puntos: 317
Respuesta: Problemas; Rotar Imagen segun hora del dia

En realidad hay una forma en JS, pero no es segura para nada. Por más que haya que hacerle algún ajuste al servidor de Lituania, conviene más PHP.

Saber uso horario de visitante!
  #5 (permalink)  
Antiguo 31/07/2012, 09:56
 
Fecha de Ingreso: julio-2012
Mensajes: 8
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Problemas; Rotar Imagen segun hora del dia

Muchisimas gracias por la pronta respuesta. Ahora bien, a que se refieren exactamente con usar php? segun hasta lo que entiendo uno debe llamar al php, verdad? como seria en el caso de usar java? llamaria de dentro del codigo java a un php o deberia realizarlo integramente en php?
Muchas gracias
besos
  #6 (permalink)  
Antiguo 31/07/2012, 10:10
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: Problemas; Rotar Imagen segun hora del dia

Cita:
Iniciado por denisselara Ver Mensaje
Muchisimas gracias por la pronta respuesta. Ahora bien, a que se refieren exactamente con usar php? segun hasta lo que entiendo uno debe llamar al php, verdad? como seria en el caso de usar java? llamaria de dentro del codigo java a un php o deberia realizarlo integramente en php?
Muchas gracias
besos
Lo ideal es que lo hagas directamente en PHP.

Lo demás es rizar el rizo.

Recupera la hora en formato 24 horas o cualquier otro con

$hora= $d->format("H");

Luego, puedes usar simplemente una estructura if-else para comprobar si es superior, igual o inferior

if($hora >= 18 && $hora < 22){
// si la hora es superior o igual a las 6 de la tarde e inferior a las 10 de la noche
echo "<img src='imagena.png'>";
} else if($hora >= 22 && $hora < 23){
// si la hora es superior o igual a las 10 de la noche e inferior a las 11 de la noche.
echo "<img src='imagenb.png'>";
}

[...]

Un saludo.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 31/07/2012 a las 10:51
  #7 (permalink)  
Antiguo 31/07/2012, 11:29
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problemas; Rotar Imagen segun hora del dia

Podés simplificarlo de esta manera con Ajax y php

obtenes la hora con php
hora.php

Código PHP:
Ver original
  1. <?php
  2. date_default_timezone_set('America/Argentina/Buenos_Aires');
  3. $hora = date('G');
  4. echo "<img src='$hora.jpg' alt='' width='100' height='100' />";
  5. ?>

con este formato $hora representará un numero de 0 a 23

en tu index.php

Código PHP:
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. <head>
  5. <title>hora dinámica php+ajax</title>
  6. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. // agrega un parametro unico al archivo
  10. var prevenirCache=1;
  11.  
  12. /*** no editar ***/
  13. var cargarObjetos="";
  14. var rootdomain="http://"+window.location.hostname;
  15. var cacheParam="";
  16. function cargarAjax(url,divAjax){
  17. var contenidoAjax = false;
  18.  
  19. if(window.XMLHttpRequest) {
  20. contenidoAjax = new XMLHttpRequest();
  21. }else if(window.ActiveXObject) {
  22. contenidoAjax = new ActiveXObject("Microsoft.XMLHTTP");
  23. }else{
  24. alert('Su navegador no soporta Ajax');
  25. }
  26.  
  27. contenidoAjax.onreadystatechange=function(){
  28. cargaPagina(contenidoAjax,divAjax);
  29. }
  30.                
  31. if(prevenirCache == 1){
  32.     cacheParam=(url.indexOf("?")!=-1)? "&"+ new Date().getTime() : "?"+ new Date().getTime();
  33.     }  
  34.         contenidoAjax.open('GET', url+cacheParam, true);
  35.     contenidoAjax.send(null);
  36.     }
  37.    
  38.    
  39.     function cargaPagina(contenidoAjax,divAjax){
  40.         if(contenidoAjax.readyState==1){
  41. // el mensaje actualizando es opcional
  42.             document.getElementById(divAjax).innerHTML = '<p style="text-align: center;">actualizando<\/p>';
  43.             }
  44.             if(contenidoAjax.readyState == 4 && (contenidoAjax.status==200 || window.location.href.indexOf("http")==-1)){
  45.                 document.getElementById(divAjax).innerHTML=contenidoAjax.responseText;
  46.                 }
  47.                 }
  48.                
  49. // llamas a la función cada 59 segundos para que actualice la imagen
  50. window.onload = setInterval("cargarAjax('hora.php','la_hora')", 59000);
  51. //]]>
  52. </script>
  53. </head>
  54. <body>
  55. <div id="la_hora">
  56. <?php
  57. date_default_timezone_set('America/Argentina/Buenos_Aires');
  58. $hora = date('G');
  59. // mostrás la imagen por defecto al cargar la página
  60. echo "<img src='$hora.jpg' alt='' width='100' height='100' />";
  61. ?>
  62. </div>
  63. </body>
  64. </html>

Ahora solo te resta nombrar tus imágenes
0.jpg
1.jpg
2.jpg
y así sucesivamente

Y siempre tendrás la imágen correcta
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: imagenes, rotador
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 08:21.