Foros del Web » Programando para Internet » PHP »

Convertir a huso horario de mi pais.

Estas en el tema de Convertir a huso horario de mi pais. en el foro de PHP en Foros del Web. Que tal amigos. A ver si me pueden ayudar con esta.. Trabajando con el API de twitter.. recibo la hora del tweet, pero viene en ...
  #1 (permalink)  
Antiguo 11/08/2011, 08:42
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
Exclamación Convertir a huso horario de mi pais.

Que tal amigos.

A ver si me pueden ayudar con esta..

Trabajando con el API de twitter.. recibo la hora del tweet, pero viene en un formato similar a este Wed, 10 Aug 2011 20:46:42 +0000.

Quisiera saber si es posible y como, que yo tome esta fecha y la pase a mi huso horario que es -4:30 America/caracas

Alguna idea? Gracias... Diganme cualquier cosa que necesiten saber..
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #2 (permalink)  
Antiguo 11/08/2011, 09:12
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Convertir a huso horario de mi pais.

No sé si te sirva pero con esto te da a hora de Caracas -0430 y lo formateas con la función date como quieras:

Código PHP:
Ver original
  1. <?php
  2.  
  3. date_default_timezone_set('America/Caracas');
  4.  
  5. echo date('r', strtotime('Wed, 10 Aug 2011 20:46:42 +0000'));
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 11/08/2011, 09:25
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
De acuerdo Respuesta: Convertir a huso horario de mi pais.

Gracias por responder amigo! ciertamente no me sirvió tu código.. pero ya pude resolverlo.

lo dejo aqui para que pueda servirle a alguien... Ya que es muy util este codigo..

Código PHP:
Ver original
  1. $fecha = explode(" ",$actual["created_at"]);
  2.                    
  3.                     $userTimezone = new DateTimeZone('America/Caracas');
  4.                     $gmtTimezone = new DateTimeZone('GMT');
  5.                     $myDateTime = new DateTime($fecha[1]."-".$fecha[2]."-".$fecha[3]." ".$fecha[4], $gmtTimezone);
  6.                     $offset = $userTimezone->getOffset($myDateTime);
  7.                     $fecha_webistica = date('d-m-Y, H:i', $myDateTime->format('U') + $offset);

Saludos..
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #4 (permalink)  
Antiguo 11/08/2011, 09:41
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Convertir a huso horario de mi pais.

Pues a mi no me termina de cuadrar tu código si son las 20:46 +0000 tiene que darte las 16:16 en caracas -0430. Tu código da 11:16
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 11/08/2011, 09:59
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
De acuerdo Respuesta: Convertir a huso horario de mi pais.

Cierto... O.O

Bueno.. voy a piratear un poco pues.. hehe

Código PHP:
Ver original
  1. $userTimezone = new DateTimeZone('America/Caracas');
  2.                     $gmtTimezone = new DateTimeZone('GMT');
  3.                     $myDateTime = new DateTime($fecha[1]."-".$fecha[2]."-".$fecha[3]." ".$fecha[4], $gmtTimezone);
  4.                     //$offset = $userTimezone->getOffset($myDateTime);
  5.                     $fecha_webistica = date('d-m-Y, H:i a', $myDateTime->format('U') + "-0430");

ahora si.. gracias por la observación bro!
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #6 (permalink)  
Antiguo 11/08/2011, 10:19
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Convertir a huso horario de mi pais.

Sigue sin dar lo que necesitas. Ese código da 15:39 y necesitas 16:16 prueba así:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha = 'Wed, 10 Aug 2011 20:46:42 +0000';
  4. $timezone = new DateTimeZone('America/Caracas');
  5. $date = new DateTime($fecha, $timezone);
  6. $date->setTimezone($timezone);
  7. echo $date->format('d-m-Y H:i:s P');
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #7 (permalink)  
Antiguo 11/08/2011, 10:27
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
Exclamación Respuesta: Convertir a huso horario de mi pais.

pero a mi si me da 16:16

le estoy poniendo el offset directamente.. no podria haber error..

Código PHP:
Ver original
  1. $fecha = explode(" ",$actual["created_at"]);
  2.  
  3.                     $userTimezone = new DateTimeZone('America/Caracas');
  4.                     $gmtTimezone = new DateTimeZone('GMT');
  5.                     $myDateTime = new DateTime($fecha[1]."-".$fecha[2]."-".$fecha[3]." ".$fecha[4], $gmtTimezone);
  6.                     //$offset = $userTimezone->getOffset($myDateTime);
  7.                     $fecha_webistica = date('d-m-Y, h:i a', $myDateTime->format('U') + "-0430");

me arroja : 10-08-2011, 04:16 pm
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!
  #8 (permalink)  
Antiguo 11/08/2011, 10:41
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Convertir a huso horario de mi pais.

Curioso que te de esa hora sabiendo que sólo estas restando segundos, pero si te da dejamos el tema hasta aquí.

Código PHP:
Ver original
  1. $fecha_webistica = date('d-m-Y, h:i a', $myDateTime->format('U') + "-0430");

que me corrijan los expertos si me estoy equivocando... Pero para mí eso es una resta de segundos.

Edit: De todas maneras no ignores mi código que funciona bien y sin explode:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $fecha = 'Wed, 10 Aug 2011 20:46:42 +0000';
  4. $timezone = new DateTimeZone('America/Caracas');
  5. $date = new DateTime($fecha, $timezone);
  6. $date->setTimezone($timezone);
  7. echo $date->format('d-m-Y H:i:s P');
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 11/08/2011 a las 11:05
  #9 (permalink)  
Antiguo 11/08/2011, 11:58
Avatar de Heiroon  
Fecha de Ingreso: junio-2010
Ubicación: Caracas, Venezuela - Por ahora...
Mensajes: 495
Antigüedad: 14 años, 5 meses
Puntos: 63
De acuerdo Respuesta: Convertir a huso horario de mi pais.

En el codigo original que coloque primero:

Código PHP:
Ver original
  1. $fecha = explode(" ",$actual["created_at"]);
  2.  $userTimezone = new DateTimeZone('America/Caracas');
  3.  $gmtTimezone = new DateTimeZone('GMT');
  4.  $myDateTime = new DateTime($fecha[1]."-".$fecha[2]."-".$fecha[3]." ".$fecha[4], $gmtTimezone);
  5.  $offset = $userTimezone->getOffset($myDateTime);
  6.  $fecha_webistica = date('d-m-Y, H:i', $myDateTime->format('U') + $offset);

me devolvia como $offset = 16200. Porq me lo estaba enviando en segundos si lo multiplicas por 3600, te da 4.5 que es 4:30. pero de verdad necesitaba salir de esto, por lo que decidi "piratear" como te dije, y le puse el offset directamente a la timezone que corresponde -0430.

No tengo ninguna razon para mentirte.. si funciona...

P.D.: Igualmente muchas gracias por tu codigo!
__________________
Gmail : [email protected]
Twitter: @heiroon

I'm back!

Etiquetas: horario, huso
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 22:21.