time() plus/minus en variabel (gmt/tidszone)

Tags:    php


Sidder og bøvler lidt med det sidste i forb. med nogle timestamps hvor der gerne skulle lægges gmt til (eller trækkes fra)

Gmt variablen indeholder +/- og så sekunder afhængig af den pågældende gmt.. fx: + 3600 hvis gmt er sat til +01:00

Kan dog ikke få time() eller nogle andre variabler der indeholder timestamps plusset sammen med gmt variablen..

Koden:

$gmt_sql = mysql_query("SELECT gmt FROM users WHERE id='$_SESSION[user_id]'");
$gmt = mysql_result($gmt_sql,0);

// den kan ikke plusse de to tal sammen her
$time_gmt = $gmt + time();

print date('l jS \of F Y h:i A',$time_gmt);


Kunne det evt skyldes at $gmt indeholder et plus/minus tegn før det faktiske tal (gmt i sekunder)?



Koden :
Fold kodeboks ind/udKode 

:)



Hvis gtm altid er "+ cifre" eller "- cifre" kunne du gøre noget i retning af

$time_gmt=time()+(int)$gmt;

Alternativt kan du prøve:
$time_gmt=eval('return '.time().$gmt.';');
Ikke at jeg tror det videre smart.


Og hvis alt andet fejler kan du prøve regExp.



$time_gmt=eval('return '.time().$gmt.';');
virkede fint :) tak for hjælpen


Er der nogle konsekvenser ved at bruge den metode eller? siden du siger at det ikke er videre smart?



Hvis dit gmr altid er et udtryk "+ cifre" eller "- cifre" så nej (Koster muligvis lidt tid.), men hvis dit gmt er sat af brugerne som en streng. Så kan han jo gemme "; DELETE DATABASE" i gmt ("DELETE DATABASE" er selvfølgelig ikke korrekt kode men bare en indikation.). Når kode så blev afviklet med eval ville din database blive slettet.



t