Foros del Web » Programando para Internet » PHP »

problema con date_default_timezone_set

Estas en el tema de problema con date_default_timezone_set en el foro de PHP en Foros del Web. Resulta que tengo una web que esta hospedada en un hosting en estados unidos, en una base de datos almaceno unos datos qeu van acompañados ...
  #1 (permalink)  
Antiguo 29/09/2010, 15:44
 
Fecha de Ingreso: abril-2001
Ubicación: Puerto Montt
Mensajes: 89
Antigüedad: 23 años
Puntos: 1
problema con date_default_timezone_set

Resulta que tengo una web que esta hospedada en un hosting en estados unidos, en una base de datos almaceno unos datos qeu van acompañados por la hora en que fue insertado, para mostrarlo a ciertos usuario que estan en españa, debo modificar la hora, ajustandola al uso horario, entonces, cuando ellos desean ver los registros que tengo guardados en la base de datos tengo que mostrarles el nombre y la fecha de ingreso (mostrando la hora de españa), para eso estoy usando el date_default_timezone_set , pero resulta que el primer registro me modifica la hora y me pone la hora como si fuese de españa pero del segundo registro en adelante me muestra la hora tal cual como esta en la base de datos, sin sumarle las horas, este es el script que uso:
Código HTML:
<? function fecesp($fecha) { 
   $otro = strtotime($fecha); 
   date_default_timezone_set('Europe/Madrid');
   return  date ("d-m-Y H:i:s", $otro);
} 

$sql = "SELECT * FROM respuestas WHERE usuario = 1";
$count_result = mysql_query($sql, $link); 
 while ($row = mysql_fetch_array($count_result)) {
  echo $row['id']." - ".fecesp($row['fecha'])."<br>";

}
?> 
esto es un ejemplo resumido, el asunto es que la consulta funciona perfectamente, pero cuando llamo a la funcion fecesp que deberia convertir la hora al horario español no lo hace, lo hace solo para el primer registro, pero no para los siguientes....
Si alguien sabe alguna solucion a este problema, agradeceria muchisimo que me ayudaran con esto.
  #2 (permalink)  
Antiguo 29/09/2010, 15:58
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Respuesta: problema con date_default_timezone_set

Que es usuario = 1, su id?, si vas a mostrar el cambio de hora sólo para usuarios de España entonces en la cláusula WHERE deberías poner algo como pais='España', de modo que sólo para ellos se aplique el cambio de hora, esto si en tu tabla tienes un campo pais.

Saludos.
  #3 (permalink)  
Antiguo 29/09/2010, 16:46
 
Fecha de Ingreso: abril-2001
Ubicación: Puerto Montt
Mensajes: 89
Antigüedad: 23 años
Puntos: 1
Respuesta: problema con date_default_timezone_set

La consulta que puse es un ejemplo, no importa la consulta, lo que importa es que la fecha que muestra, sea cual sea la consulta anterior, deberia estar modificada, para el uso horario de españa... ya que todos los resultados que arroja esa consulta vienen de un usuario de españa
  #4 (permalink)  
Antiguo 29/09/2010, 17:08
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con date_default_timezone_set

según el manual, dicha función cambia el comportamiento de todas las funciones relacionadas al tratamiento de hora y fecha...

así que deberías usarla una sola ves, al inicio de tus scripts... en un archivo de configuración por ejemplo, y no hacerlo cada ves que necesites cambio de hora... eso último es lo que te genera inconsistencias...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/09/2010, 19:34
 
Fecha de Ingreso: abril-2001
Ubicación: Puerto Montt
Mensajes: 89
Antigüedad: 23 años
Puntos: 1
Respuesta: problema con date_default_timezone_set

Eso intente, si pongo la linea date_default_timezone_set('Europe/Madrid'); en el inicio de la pagina, o antes de la funcion, o antes del while, en todos los casos, no me cambia ninguna hora, mientra que si lo meto dentro de la funcion tal como lo puse en el ejemplo, me cambia la primera hora del bucle y de la segunda en adelante no me las cambia....
  #6 (permalink)  
Antiguo 29/09/2010, 19:39
 
Fecha de Ingreso: diciembre-2007
Mensajes: 178
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: problema con date_default_timezone_set

Para cambiar la hora que tenes en la base de datos, lo mejor es usar la funcion DATE_FORMAT de mysql.
Un ejemplo para agregar dos horas.
Código PHP:
Ver original
  1. "select *, DATE_FORMAT(fecha + interval 2 hour,\"%d/%m/%Y  -  %H:%i\")as fecha from ".$this->tabla." order by....

Etiquetas: Ninguno
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 13:10.