Hora local del equipo visitante a una web en una variable html

Antes que nada, agradecer de antemano la ayuda que me prestan en mi aprendizaje.

Necesitaría saber como obtener la hora local del usuario que entra en una web y llevar el valor de la hora, sin minutos ni segundos, a una variable en php.

Según sea el valor e esa variable, con un if, se asigna un texto y este se pasa mediante $_POST a otro archivo.

1 respuesta

Respuesta
1

Puedes ver como conseguir vía javascript la hora del cliente:

http://www.w3schools.com/jsref/jsref_gettime.asp 

Luego mediate formulario puedes pasarla a $_POST, pero te recomiendo que lo hagas como $_GET ya que de esta manera lo pasas mediate URL que es mucho más sencillo que hacerle al cliente un botón para formulario.

En caso de que sea totalmente necesario el formulario, recuerda que puedes pasar variables "ocultas" al cliente mediante "hidden".

Dime si necesitas un ejemplo o algo más.

Estimado Víctor.

En primer lugar muchas gracias por tu respuesta, me ha aportado un punto de vista en el que no había pensado yo.

Si que me haría falta el ejemplo. Te comento de que va.

Tengo un formulario donde el usuario indica su usuario y contraseña.

Compruebo mediante php que dicho usuario y contraseña existen en una tabla de la base de datos montada en mysql. Si es cierto que el usuario existe y la contraseña es correcta, paso su Id de usuario y nombre mediante variables e sesión algunos datos a otro archivo php que monta un menú.

En este menú, mediante etiqueta <header> monta un saludo teniendo en cuenta la hora en la que se conecta.

Lo he montado con php de la siguiente forma $hora = date("h");

No me di cuenta de que esa hora es la hora del servidor de la web y claro no monta el saludo correcto con la hora real del usuario.

Necesito saber como llevo el valor a $hora de forma que tenga el valor de la hora, entre 0 y 23 del equipo visitante, no del equipo servidor.

Si me aportas un ejemplo te lo agradeceré mucho. Espero comprendas que es mi deseo aprender.

Muchas gracias.

Te comento como hacerlo:

Lo primero que tienes que hacer es lo siguiente.

<script>
var a = new Date();
var b = d.getMinutes(); 
var c = d.getHours();
</script>

Ahora tenemos los minutos y segundo que tiene marcados el cliente (ahora, ya no podemos controlar si su reloj esta bien configurado)

Con esto, podemos hacer el formulario con los datos:

<form>
<input type="hidden" value="" id="horas">
<input type="hidden" value="" id="minutos">
</form>

Ten en cuenta que ahí tendrás que poner todos tus datos, a si como el submit del formulario y demás.

La cosa es; ¿Cómo pasamos el dato de javascript al html?

Sencillo, solo tenemos que agregar esto al script:

<script>
var a = new Date();
var b = d.getMinutes(); 
var c = d.getHours();
 document.getElementById("horas").innerHTML = c;
 document.getElementById("minutos").innerHTML = b;
</script>

¡Gracias! 

Ha funcionado perfectamente, muchísimas gracias. La he guardado en mi librería particular con buena referencia a ti, el autor. 

Gracias por la explicación tan detallada.

Desde Tenerife, Canarias muchas gracias.

y como lo pasamos a php?

lo he hecho, pero en php con $_POST no me saca nada.

Tendré que indicar algo para que pase el valor numérico de la hora que es el único que me interesa?

Gracias

Buenas tardes de nuevo.

Lo he resuelto de la siguiente forma.

<header>
      <h1 align="center">
            <img align="left" src="../banderas/es.jpeg" width="60" height="40" align="center" />
            <script language="JavaScript1.2">
                  today = new Date()
                  if((today.getHours() >=7) && (today.getHours() <13)){
                        document.write("Buenos días, ")
                  }
                  document.write;
                  if((today.getHours() >=13) && (today.getHours() <21)){
                         document.write("Buenas tardes, ")
                  }
                  if((Today.getHours() >=21) && (today.getHours() <7)){
                         document.write("Buenas noches, ")
                  }
            </script>
            <?php
                  echo $_SESSION["UsuarioActivo"];
                  echo ", bienvenido al Menú principal de la aplicación.";
                  echo "<br>";
            ?>
      </h1>
</header>

Solo queda darte las gracias por tu aporte. Y sobre todo, por la enseñanza que me has aportado.

Un saludo

Me alegra que pudieras encontrar una solución con lo que te comenté.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas