Foros del Web » Programando para Internet » PHP »

Fechas con control GMT

Estas en el tema de Fechas con control GMT en el foro de PHP en Foros del Web. Mi duda es: como tratais a las fechas para que si un usuario marca que en su pais es de la zona horaria gmt+2 a ...
  #1 (permalink)  
Antiguo 23/05/2007, 10:18
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Fechas con control GMT

Mi duda es: como tratais a las fechas para que si un usuario marca que en su pais es de la zona horaria gmt+2 a las horas se le añadan dos? por que he provado sumando, pero claro, cuando son las 23 (osea las 11 de la noche) le añadiria dos horas, y serian las 25, por que hasta que no llege a las 24 horas reales, osea, gmt 0 no pasara a la hora 0, pero aunque se lo sume, no se pasa automaticamente, como puedo solucionar este problema? que sistema utilizais para controlar las fechas por gmt?

Un saludo
  #2 (permalink)  
Antiguo 23/05/2007, 10:37
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Fechas con control GMT

hola
mira esta funcion (la habia armado con informacion qe encontre en la documentacion de la funcion date() de php.net creo, o no se si era copiada y arme una funcion complementaria,, no recuerdo, pero creo te servira xD)

Código PHP:
function zonedate($layout$countryzone$daylightsaving$dt) {
/*-12 : Dateline Standard
-11 : Samoa Standard Time
-10 : Hawaiian Standard Time
-8 : Pacific Standard Time
-7 : Mexican Standard Time, Mountain Standard Time
-6 : Central Standard Time, Mexico Standard Time
-5 : Eastern Standard Time Eastern Time, SA Pacific Standard Time
-4 : Atlantic Standard Time, SA Western Standard Time, Pacific SA Standard Time
-3.5 : Newfoundland Standard Time
-3 : SA Eastern Standard Time, E. South America Standard Time
-2 : Mid:Atlantic Standard Time
-1 : Azores Standard Time, Cape Verde Standard Time
0 : Universal Coordinated Time, Greenwich Mean Time
1 : Romance Standard Time, Central Africa Standard Time, Central European Standard Time
2 : Egypt Standard Time, South Africa Standard Time, E. Europe Standard Time, FLE Standard Time, GTB Standard Time
3 : Arab Standard Time, E. Africa Standard Time, Arabic Standard Time, Russian Standard Time
3.5 : Iran Standard Time
4 : Arabian Standard Time, Caucasus Standard Time, Afghanistan Standard Time
5 : West Asia Standard Time
5.5 : India Standard Time
5.75 : Nepal Standard Time
6 : Central Asia Standard Time
6.5 : Myanmar Standard Time
7 : SE Asia Standard Time, North Asia Standard Time
8 : China Standard Time, W. Australia Standard Time, Singapore Standard Time, Taipei Standard Time, North Asia East Standard Time
9 : Tokyo Standard Time, Korea Standard Time, Yakutsk Standard Time
9.5 : AUS Central Standard Time, Cen. Australia Standard Time
10 : AUS Eastern Standard Time, E. Australia Standard Time
West Pacific Standard Time, Tasmania Standard Time, Vladivostok Standard Time
11 : Central Pacific Standard Time
12 : Fiji Standard Time, New Zealand Standard Time
13 : Tonga Standard Time*/

    
if($daylightsaving) {
        
$daylight_saving date('I');
        if(
$daylight_saving) { $zone=3600*($countryzone+1); } 
    } else {
        if(
$countryzone>>0) {
            
$zone=3600*$countryzone;
        } else {
            
$zone=0;
        }
    }
    
$date=gmdate($layoutstrtotime($dt)+ $zone);
    return 
$date;

la utilizas asi
Código PHP:
zonedate(formato de fecha de salidazona horaria0fecha qe qieras transformar en formato str); 
espero qe te sirva ^^

exitos
  #3 (permalink)  
Antiguo 23/05/2007, 13:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Fechas con control GMT

Tengo un pequeño problema, como no se bien que hace la funcion strtotime, no se que es lo que tengo que poner en el ultimo valor de la funcion. espero que me puedas ayudar.

Un saludo
  #4 (permalink)  
Antiguo 23/05/2007, 13:10
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Fechas con control GMT

strtotime() obtiene la marca de tiempo unix de una fecha contenida en una cadena, por ejemplo "25/05/2007 16:10", y por ello en el ultimo argumento de la funcion deberias poner la fecha en un formato similar a ese, es decir en texto ^^

exitos
  #5 (permalink)  
Antiguo 23/05/2007, 13:12
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Fechas con control GMT

Estaria bien, llamar a esa funcion, de esta manera?
echo zonedate('H-i-s','2', 0,'25/05/2007 16:10' );
  #6 (permalink)  
Antiguo 23/05/2007, 13:17
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Fechas con control GMT

si, y recuerda qe te devolvera la nueva fecha asi qe tndras qe poner $nueva=zonedate(..); ^^

exitos
  #7 (permalink)  
Antiguo 23/05/2007, 13:19
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Fechas con control GMT

Ya, pero, no me da la fecha buena, mira si llamo a la funcion de esta manera:

echo zonedate('H-i-s','2', 0,'25/05/2007 16:10' ); me devuelve esto:
02-00-00 y lo que necesito esque me devuelva la fecha, y la hora, contando el gmt que yo le halla puesto.

Un saludo
  #8 (permalink)  
Antiguo 23/05/2007, 13:24
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: Fechas con control GMT

prueba poner la original cn formato Y-m-d H:i:s, pues a mi me funciona con fechas extraidas directamente desde mysql, que tienen ese formato.
tal vez lea mal las fechas en otro formato el strtotime()

(stoi con problemas de conexion no puedo investigar mas,, por eso el "tal vez" :@:@)

exitos
  #9 (permalink)  
Antiguo 23/05/2007, 14:06
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Fechas con control GMT

Ya lo solucione, no utilizando esa funcion, pero lo solucione gracias a tu explicacion de strtotime, que si pones 'now' es lo mismo que time() o date('U'), y tambien lo consegui biendo lo que intentaba hacer el script, asi que lo he conseguido gracias a ti.. Gracias.

Un saludo
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 18:31.