PERL + localtime 1 h zu spät ?
Sven Gabentuler
Hallo Forumgemeide
Ich hab folgendes Problem, in meinem CGI-Script benutzte ich folgendes Script:
$date = (scalar localtime);
$date hat dann einen Wert der in etwa so aussieht:
Thu Mar 11 21:47:45 1999
Das Problem ist nur das diese Zeit gegenüber dem Betriebsystem 1h hintenreinhinkt!
Irgendeine Idee ?? Gibts noch andere Möglichkeiten die Zeit zu berechnen auszugeben unter Perl ??
Greets
sven
Hallo Forumgemeide
Ich hab folgendes Problem, in meinem CGI-Script benutzte ich folgendes Script:
$date = (scalar localtime);
$date hat dann einen Wert der in etwa so aussieht:
Thu Mar 11 21:47:45 1999Das Problem ist nur das diese Zeit gegenüber dem Betriebsystem 1h hintenreinhinkt!
Irgendeine Idee ?? Gibts noch andere Möglichkeiten die Zeit zu berechnen auszugeben unter Perl ??
weil das Greenwich zeit ist... eh klar oder?
:)
CU
Rufinus
Morgen!
weil das Greenwich zeit ist... eh klar oder?
Na wenn es doch aber localtime() heisst? Sollte dann nicht die hiessige Zeit zurueckkommen?
Calocybe
Morgen!
weil das Greenwich zeit ist... eh klar oder?
Na wenn es doch aber localtime() heisst? Sollte dann nicht die hiessige Zeit zurueckkommen?
Calocybe
localtime hin oder her... weis jemand wie ich es schaffe das mir das teil den richtigenwert liefert ???
MfG
Sven
Hallo Sven !
$nowinsec = time();
$nowinsec=$nowinsec+3600;
$now = localtime($nowinsec);
So müßte es funktionieren.
Gruß
Jörg
Hi,
$nowinsec = time();
$nowinsec=$nowinsec+3600;
$now = localtime($nowinsec);
eigentlich sollte localtime(time) schon reichen...
Cheatah
Hi,
eigentlich sollte localtime(time) schon reichen...
Nee, reicht gar nicht ;-) Klammern vergessen: localtime(time())
Ist ein gern gemachter Anfaengerfehler. Nein Cheatah, nicht Du, bei Dir war's natuerlich nur die Fluechtigkeit. :-)
Calocybe
Hi,
eigentlich sollte localtime(time) schon reichen...
Nee, reicht gar nicht ;-) Klammern vergessen: localtime(time())
doch, reicht. Ist bei mir ohne Klammern im Einsatz.
Was die Zeitkorrektur betrifft: Ich hatte vermutet (ungeprüft), daß localtime und localtime(time) unterschiedliche Werte zurückgeben, also der Fehler damit schon korrigiert wäre. Wenn er das nicht ist, muß natürlich noch eine 3600 addiert werden :-)
Cheatah
Hi,
Nee, reicht gar nicht ;-) Klammern vergessen: localtime(time())
doch, reicht. Ist bei mir ohne Klammern im Einsatz.
Oops, jetzt hab ich mich aber in die Nesseln gesetzt. Naja, das ist manchen Sprachen halt mit Klammern (z.B. JS), in anderen ohne (Perl eben), da verwechselt man schon mal was. Der Hammer ist mal wieder ein M$-Produkt: Visual Basic. Mal MUSS man die Klammern hinschreiben, mal DARF man sie nicht hinschreiben. Aber die haben ja sowieso nen Knall.
Calocybe
Hi,
$nowinsec = time();
$nowinsec=$nowinsec+3600;
$now = localtime($nowinsec);eigentlich sollte localtime(time) schon reichen...
Cheatah
hi cheatha !
verstehe ich nicht. es ging doch darum, daß die angegebene Zeit eine stunde hinterherhinkt.
also muß man 3600 (60x60) für eine stunde addieren
bevor localtime in funktion tritt. oder?
gruß
joerg
Hi,
verstehe ich nicht. es ging doch darum, daß die angegebene Zeit eine stunde hinterherhinkt.
Nanu? Stimmt ja. Da haben wir beide (Cheatah und ich) in der Fluechtigkeit wieder nicht richtig nachgedacht. Also jetzt noch mal richtig:
localtime(time() + 3600)
Jetzt hammer's aba!
Calocybe