Foros del Web » Programando para Internet » PHP »

distinta fecha local y remoto

Estas en el tema de distinta fecha local y remoto en el foro de PHP en Foros del Web. hola, tengo el siguiente codigo que se supone me da la fecha del proximo lunes despues del 5 de mayo del 2006 Código PHP: $fecha  ...
  #1 (permalink)  
Antiguo 08/05/2007, 09:19
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
distinta fecha local y remoto

hola, tengo el siguiente codigo que se supone me da la fecha del proximo lunes despues del 5 de mayo del 2006

Código PHP:
$fecha strtotime("5 May 2006");
$proximo_lunes strtotime("next Monday",$fecha);
echo 
date("d/m/Y"$proximo_lunes); //Local: 08/05/2006, Remoto: 15/05/2006 
La respuesta correcta es la del serv local, pero como ven las respuestas en el local y remoto son disntintas, una semana de diferencia para ser exacto. Alguien podria decirme por que suecede esto??

y otro detalle:
Código PHP:
$o_fecha mktime(000date('m'), date('d'), date('Y'));
print_r($o_fecha); // Local: 1178596800 , Remoto: 1178600400
echo strftime("%Y-%m-%d"$o_fecha); // Local = Remoto: 2007-05-08 
como ven la hora unix timestamp es distinta en el local como el remoto, aun cuando la fecha es la misma
  #2 (permalink)  
Antiguo 08/05/2007, 09:25
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: distinta fecha local y remoto

Ambas maquinas estan configuradas en la misma zona horaria?
  #3 (permalink)  
Antiguo 08/05/2007, 09:34
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

Gracias por responder, acabo de ver, y tengo:
Local: EDT
Remoto: PET

no se muy bien que significa las zonas horarias distintas, pero no se supone que en cualquier parte del mundo el primer lunes despues del 5 de mayo del 2006 fue el 8 de mayo del 2006?
o como es que afecta la zona horaria a este resultado
  #4 (permalink)  
Antiguo 08/05/2007, 09:44
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: distinta fecha local y remoto

Intenta usando gmdate()
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #5 (permalink)  
Antiguo 08/05/2007, 09:52
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: distinta fecha local y remoto

Si el servidor local está en perú y el remoto en china hay 12 horas de diferencia, podría en el servidor local ser domingo y en el remoto ser ya lunes y por tanto ...
Sigue el consejo de nicolaspar.
  #6 (permalink)  
Antiguo 08/05/2007, 10:17
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

Pues si, al parecer es cuestion de zona horaria, pero y ahora como se arregla eso, tengo:
Código PHP:
$fecha gmmktime(000552006);
echo 
"Unix timestamp GMT".$fecha// Local = Remoto: 1146787200

$proximo_lunes strtotime("next Monday",$fecha);
echo 
$proximo_lunes//Local: 1147060800 != Remoto: 1147669200
echo gmdate("d/m/Y",$proximo_lunes); //Local:08/05/2006 != Remoto:15/05/2006 
como puedo manipular el strtotime para esto de las zonas horarias, o existe alguna otra funcion que me devuelva la fecha del proximo lunes, martes, etc??
  #7 (permalink)  
Antiguo 08/05/2007, 11:12
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: distinta fecha local y remoto

Trabaja con timestamp (time()), es un valor "estático/fijo/no variable". Entonces, si tenes por ejemplo el día 1298981 (en timestamp), y le sumas 86400 (60*60*24) tendrás +1 día, si le haces $varTimestamp + 86400 * 7 tendrás una semana después de ese valor, por lo que si haces time() + 86400 * 7 tendrás una semana desde este segundo.

Luego, para mostrarlo usas gmdate(), simplemente eso.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #8 (permalink)  
Antiguo 08/05/2007, 11:24
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

Gracias de nuevo por la respuesta, si veo que se puede agregar dias semanas incluso meses, pero mi problema basico es que me dan una fecha, cualquiera, presente, pasado o futuro y a apartir de ahi me piden encontrar la siguiente fecha correspondiente a un lunes por ejemplo, o martes o miercoles
asi me dan la fecha de 20 de junio del 2010 y tengo que encontrar el siguiente martes mas proximo a esa fecha, y pues para eso la funcion que me da ese valor es
Código PHP:
strtotime('next tuesday'$fecha_unix_timestamp
por eso mi obstinacion con el strtotime, o quizas existe alguna otra forma solo que no la veo.


Cita:
Iniciado por nicolaspar Ver Mensaje
Trabaja con timestamp (time()), es un valor "estático/fijo/no variable". Entonces, si tenes por ejemplo el día 1298981 (en timestamp), y le sumas 86400 (60*60*24) tendrás +1 día, si le haces $varTimestamp + 86400 * 7 tendrás una semana después de ese valor, por lo que si haces time() + 86400 * 7 tendrás una semana desde este segundo.

Luego, para mostrarlo usas gmdate(), simplemente eso.
  #9 (permalink)  
Antiguo 08/05/2007, 12:21
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: distinta fecha local y remoto

Esta bien usar strtotime en ese caso. Puede servirte la siguiente función, avisame si te funciona (no la probe):
Código PHP:
function gmstrtotime$time$now ){
    
$timestamp strtotime$time$now );
    
$zone intval(date("O"))/100;
    
$timestamp += $zone*60*60;
    return 
$timestamp;

__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #10 (permalink)  
Antiguo 08/05/2007, 13:52
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
permisos putenv

probare ahora tu codigo, pero estuve viendo y por ahi encontre la funcion putenv para definir la zona horario para todos mis scripts, lo unico es que cuando lo ejecuto en el servidor me sale el siguiente error:
Código PHP:
putenv("TZ=America/Lima");
putenv(): Safe Mode warningCannot set environment variable 'TZ' its not in the allowed list in 
luego hay otra funcion date_default_timezone_set() pero no es soportada por php4, que es la version de php en el remoto

entonces sigo sin una solucion general, que sirva para todo, alguna luz que me ilumine?
  #11 (permalink)  
Antiguo 08/05/2007, 14:07
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: distinta fecha local y remoto

Claro, date_default_timezone_set() es para php5 (es más, esta por default sin configurar, por lo que da error generalmente si no se agrega en un script).

Y trata de no usar putenv, las variables de entorno son jodidas, al menos para lo que necesitas.

Contame como fue gmstrtotime().
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #12 (permalink)  
Antiguo 08/05/2007, 14:46
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

entiendo que le agregas la diferencia con la hora de greenwich multiplicada por 3600
Código PHP:
echo date("Y-m-d"gmstrtotime('next Monday'$fecha));
 
//Local 2006-05-07, Remoto: 2006-05-14 
una semana despues como puede verse, bueno eso aparte que el proximolunes despues del 5 de mayo d 2006 es el 8 de mayo y no 7
pero lo interesante es que sigue habiendo una semana de diferencia y si no se recomienda usar el putenv y el date_default... solo es para php5, existe alguna otra funcion?
  #13 (permalink)  
Antiguo 08/05/2007, 14:52
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: distinta fecha local y remoto

Dividida por 100 y * por 1 hora.
Que te da en ambas maquinas el hacer un echo date("O")?

Intenaste con http://ar.php.net/manual/es/function.gmstrftime.php (que no sabia que existia:S)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #14 (permalink)  
Antiguo 08/05/2007, 15:04
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

segun veo intval es el numero de horas de la diferencia de la hora con GMT
Código PHP:
echo date("O"); //Local: -0400, Remoto: -0500
echo intval(date("O"))/100//Local:-4 , Remoto:-5 
lo que no comprendo es por que una semana de diferencia
  #15 (permalink)  
Antiguo 08/05/2007, 15:43
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: distinta fecha local y remoto

Yo tampoco, y no sabia que existía gmstrftime de manera nativa, confié que que lo habías buscado también. La probaste?
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 08/05/2007 a las 15:46 Razón: ortografía
  #16 (permalink)  
Antiguo 08/05/2007, 15:58
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años
Puntos: 0
Re: distinta fecha local y remoto

..........

Última edición por oskarrr; 08/05/2007 a las 16:31
  #17 (permalink)  
Antiguo 08/05/2007, 16:01
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

existe gmstrftime pero lo que yo busco es un gmstrtotime, podria usar el gmmktime que "aparentemente" cumple las mismas funciones solo que esta ultima no me da el valor que busco, la fecha de un dia de la semana(lunes, martes....) proxima a una fecha dada, el gmmktime da resultados para una fecha exacta

creo que no me di a entender muy bien
gracias de todas maneras
  #18 (permalink)  
Antiguo 08/05/2007, 16:30
 
Fecha de Ingreso: abril-2007
Mensajes: 99
Antigüedad: 17 años
Puntos: 0
Re: distinta fecha local y remoto

.....................
  #19 (permalink)  
Antiguo 08/05/2007, 16:36
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: distinta fecha local y remoto

pues para eso el mktime es el mas indicado, aritmetica de fechas
http://www.php.net/manual/es/function.mktime.php

Código PHP:
date("Y-m-d "mktime(0,0,0,5,32,2006)) 
Cita:
Iniciado por oskarrr Ver Mensaje
..........
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 08:42.