Foros del Web » Programando para Internet » PHP »

Partir fecha en fecha y tiempo

Estas en el tema de Partir fecha en fecha y tiempo en el foro de PHP en Foros del Web. Hola a todos; Despues de llamar con PHP a un servicio web obtengo una fecha con el siguiente formato: 2012-07-17T15:00:00.000Z ¿A partir de este string ...
  #1 (permalink)  
Antiguo 17/07/2012, 16:27
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 16 años, 9 meses
Puntos: 2
Pregunta Partir fecha en fecha y tiempo

Hola a todos;

Despues de llamar con PHP a un servicio web obtengo una fecha con el siguiente formato:

2012-07-17T15:00:00.000Z

¿A partir de este string como puedo generar una variable de tipo fecha y posteriormente obtener la fecha y la hora por separado?

Lo quiero en una variable de tipo fecha ya que como la fecha que me dan es universal (UTC) luego tengo que restarle o sumarle las horas adecuadas para obtener la hora local. ¿Hay alguna forma en PHP de obtener la hora local a partir de la latitud y longitud de una zona? ¿Creo que debo utilizar otro servicio web? ¿Habeis hecho esto alguna vez?

Gracias
__________________
¿Por qué Uri Geller doblaba cucharas?
  #2 (permalink)  
Antiguo 17/07/2012, 16:57
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 9 años, 10 meses
Puntos: 55
Respuesta: Partir fecha en fecha y tiempo

puedes usar explode

$fecha = explode("T","2012-07-17T15:00:00.000Z"); //separas en un arreglo por el caracter T

echo $fecha[0] . " ". $fecha[1];

en la posicion 0 quedaria la fecha y en la posicion 1 quedaria la hora
  #3 (permalink)  
Antiguo 17/07/2012, 17:10
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Partir fecha en fecha y tiempo

No lo quiero tratar como una cadena. Me interesa convertirlo a fecha, no se si con la funcion date puedo pasar de string a fecha.

Luego quiero hacer operaciones con esa fecha, sumandole o restandole horas
__________________
¿Por qué Uri Geller doblaba cucharas?
  #4 (permalink)  
Antiguo 17/07/2012, 17:17
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Partir fecha en fecha y tiempo

pero esa fecha que te dan que es la hora actual???
  #5 (permalink)  
Antiguo 17/07/2012, 17:22
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 9.978
Antigüedad: 11 años, 4 meses
Puntos: 2192
Respuesta: Partir fecha en fecha y tiempo

La función date() es para convertir una fecha en cadena, lo que necesitas es strtotime() para convertir una cadena en fecha (timestamp de linux), y realizar las operaciones necesarias (en segundos). Aunque tal vez debas separar primero la cadena y "convertirla" a un formato reconocido por la función.

1 minuto = 60
1 hora = 60 x 60 (3600)
1 día = 3600 x 24 (86400)
etc.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 17/07/2012, 17:23
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 8 años, 6 meses
Puntos: 76
Respuesta: Partir fecha en fecha y tiempo

hola

prueba asi:

Código PHP:
Ver original
  1. echo date("d/m/Y H:i:s",strtotime("2012-07-17T15:00:00.000Z"));
  2.  
  3. //si quieres solo la hora
  4. echo date("H:i:s",strtotime("2012-07-17T15:00:00.000Z"));
  5.  
  6.  
  7. //si quieres solo la fecha
  8. echo date("d/m/Y",strtotime("2012-07-17T15:00:00.000Z"));
  #7 (permalink)  
Antiguo 18/07/2012, 01:33
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Partir fecha en fecha y tiempo

Gracias informacionsys, es lo que estaba buscando.
De todas formas, la salida que produce el código que me has mandado para la fecha "2012-07-17T15:00:00.000Z" es la siguiente:

17/07/2012 17:00:00
17:00:00
17/07/2012

Es decir, a partir del tiempo universal que está en la cadena obtengo directamente la hora local en España (UTC+2).

Como podria obtener la hora, respecto al tiempo universal (UTC) ¿?

Gracias
__________________
¿Por qué Uri Geller doblaba cucharas?
  #8 (permalink)  
Antiguo 18/07/2012, 02:05
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Partir fecha en fecha y tiempo

Me respondo;

Utilizando gmdate se obtiene la fecha respecto a UTC.
Ahora necesitaría saber el offset o diferencia horaria de cualquier lugar del mundo dado por su latitud y longitud.

¿Se puede conocer esto con alguna utilidad, función de PHP?
¿Debo utilizar un servicio web?

Gracias
__________________
¿Por qué Uri Geller doblaba cucharas?
  #9 (permalink)  
Antiguo 18/07/2012, 04:57
Avatar de txarly  
Fecha de Ingreso: marzo-2003
Ubicación: Eibar (Gipuzkoa)
Mensajes: 455
Antigüedad: 16 años, 9 meses
Puntos: 2
Respuesta: Partir fecha en fecha y tiempo

Para conseguir lo que comentaba en el mensaje anterior se puede llamar al servicio web "timezone" que tiene geonames. Así de facil

Código PHP:
Ver original
  1. function get_time_offset($latitude, $longitude)
  2. {
  3.     $url = 'http://api.geonames.org/timezone?lat=' . $latitude . '&lng=' . $longitude . '&username=demo';
  4.     $xml = simplexml_load_file($url);
  5.     $dstOffset = $xml->timezone[0]->dstOffset;
  6.     return $dstOffset;
  7. }
__________________
¿Por qué Uri Geller doblaba cucharas?

Etiquetas: fecha, variables
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 07:32.