Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/11/2008, 06:07
tishu
 
Fecha de Ingreso: abril-2004
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
Necesito obtener la hora española

Buenas.
No sabia si poner este mensaje en este foro o en el de php.

Tengo que obtener la hora española y no me vale la del servidor, por lo que he buscado y he encontrado como conectarme a un servidor NTP y obtener la hora ( http://www.kloth.net/software/timesrv1.php ), el codigo PHP es este:
Código PHP:
/Relojes
function query_time_server ($timeserver$socket) {
/* Query a time server
   (C) 1999-09-29, Ralf D. Kloth (QRQ.software) <ralf at qrq.de> */

  
$fp fsockopen($timeserver,$socket,$err,$errstr,5);
        
# parameters: server, socket, error code, error text, timeout
  
if ($fp) {
    
fputs($fp,"\n");
    
$timevalue fread($fp,49);
    
fclose($fp); # close the connection
  
}
  else {
    
$timevalue " ";
  }

  
$ret = array();
  
$ret[] = $timevalue;
  
$ret[] = $err;     # error code
  
$ret[] = $errstr;  # error text
  
return($ret);

# function query_time_server 



/* Query a time server
   (C) 1999-09-29, Ralf D. Kloth (QRQ.software) <ralf at qrq.de> */
$timeserver "hora.roa.es";

$timercvd query_time_server($timeserver,37);
if (!
$timercvd[1]) { # if no error from query_time_server
  
$timevalue bin2hex ($timercvd[0]);
  
//echo(HexDec($timevalue));
  
$timevalue abs (HexDec('7fffffff') - HexDec($timevalue) - HexDec('7fffffff')) ;
  
$tmestamp $timevalue 2208988800# convert to UNIX epoch time stamp
  //$datum = date("Y-m-d (D) H:i:s",$tmestamp - date("Z",$tmestamp)); /* incl time zone offset */
  
$hora date("H",$tmestamp date("Z",$tmestamp));
  
$minutos date("i",$tmestamp date("Z",$tmestamp));
  
  
$hora_esp $hora 2;

    
  

else {
  echo 
"Unfortunately, the time server $timeserver could not be reached at this time. ";
  echo 
"$timercvd[1] $timercvd[2].<br>\n";

Utilizo el servidor oficial de españa: hora.roa.es, pero no me da la hora española, obtengo la hora UTC, a la que tendría que añadir la diferencia horaria y además controlar el cambio de hora de octubre y de mayo.
¿se podría obtener la hora española directamente del servidor?

Gracias.