Foros del Web » Programando para Internet » PHP »

Fechas GMT y diferencia horaria (sumar y restar horas)

Estas en el tema de Fechas GMT y diferencia horaria (sumar y restar horas) en el foro de PHP en Foros del Web. La idea con el script es obtener un fecha GMT (para probar lo estoy haciendo con la fecha actual), restarle horas por diferencia horaria (-5), ...
  #1 (permalink)  
Antiguo 06/06/2006, 18:07
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 101
Antigüedad: 14 años, 5 meses
Puntos: 1
Pregunta Fechas GMT y diferencia horaria (sumar y restar horas)

La idea con el script es obtener un fecha GMT (para probar lo estoy haciendo con la fecha actual), restarle horas por diferencia horaria (-5), y pasarlo a formato texto (que se supone el usuario podria cambiar,) y luego regresarlas a hora GMT usando strtotime(), para guardarlas en la bd

El problema esta que aunque sumo y resto correctamente las horas ($t-(3600*5)) al final el resultado final es diferente

El codigo :

$t = time();
//$p = marca($t);
$p = $t-(3600*5);

echo gmdate('j F, Y - h:i:s', $t).' < Ahora GMT<br/>';
echo gmdate('j F, Y - h:i:s', $p).' < Ahora -5<br/>';

echo gmdate('U', $t).' < Marca de tiempo unix GMT<br/>';
echo gmdate('U', $p).' < Marca de tiempo unix -5<hr/>';

echo gmdate('Y-n-j h:i:s', $p).' < formato -5<br/>';

$np = gmdate('Y-n-j h:i:s', $p);
$np = strtotime($np);

echo $np.' resultado unix -5<br/>';
echo $np+(3600*5).' resultado unix GMT<br/>';
echo gmdate('j F, Y - h:i:s', $np+(3600*5)).' Resultado = ahora GMT<br/>';

¿que podria estar mal? ¿o estoy confundido?
__________________
@cesars
indexante.com
  #2 (permalink)  
Antiguo 06/06/2006, 20:05
 
Fecha de Ingreso: junio-2006
Ubicación: Jáltipan Veracruz, México
Mensajes: 150
Antigüedad: 11 años, 6 meses
Puntos: 1
donde haces tus restas puede que $t este en formato cadena y genere algún error, así que puede usar el intval($t) para que se lea como entero (no se transforma).
  #3 (permalink)  
Antiguo 07/06/2006, 10:04
 
Fecha de Ingreso: junio-2003
Ubicación: Buenos Aires, Argentina
Mensajes: 101
Antigüedad: 14 años, 5 meses
Puntos: 1
Revise con mas detenimiento el codigo y cambiando las siguiente linea :

$np = gmdate('Y-n-j h:i:s', $p);

Por

$np = date('Y-n-j h:i:s', $p);

Se soluciona.

El problema sucedia porque strtotime() generaba mal un la fecha GMT por que el dato que recibia tambien era una fecha GMT

Gracias por la ayuda
__________________
@cesars
indexante.com
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 17:00.