Uhrzeit konvertieren
DanielD
- perl
Hallo alle zusammen!
Ich hab da ein problem. Mein Webserver steht in den USA und folglich geht die Uhrzeit dort auch anders. Ich möchte aber gerne die deutsche Uhrzeit in meinen Skripten benutzen :o(
Weil da lassen sich Forums- und Gästebucheinträge besser verwalten und verfolgen.
Die Differenz der zeiten weiss ich, aber wie konvertiere ich die am besten ?! Mit Datumsübersprung usw. ?!
Kann mir da jemand helfen ? Vieleicht gibt es ja auch ne einfachere Lösung, als die Minuten, Stunden, .. hochzu rechnen und dabei auf Überläufe (z.B. in den USA 23 Uhr .. dann plus 8 Stunden = 31 Uhr .. also tag um eins erhöhen und Stunden mminus 23...)
gibt es danicht eine einfachere Lösung ?! :o(
Vielen Danke für Eure Hilfe
DanielD
Hallo DanialD(üsentrieb?) ;-)
Die Differenz der zeiten weiss ich, aber wie konvertiere ich die am besten ?! Mit Datumsübersprung usw. ?!
Die einfachste Möglichkeit, die auch immer einen korrekten Datumssprung erlaubt, ist, auf time() (_Sekunden_ seit ...) einfach die Zeitverschiebung in Sekunden aufzuaddieren:
@zeit = localtime(time() + 3600 * $zeitverschiebunginstunden);
Gruß AlexBausW
Hi DanielD!
gibt es danicht eine einfachere Lösung ?! :o(
Lass den Übertrag von Perl ausrechnen:
$usa = time();
$europa = localtime($usa+28800000); #USA + (8 x 60 x 60 x 1000)ms
Gruß Frank
Ich nochmal!
Da scheint in SELFHTML noch'n Fehler drin zu sein:
SelfHTML:
Die Funktion gibt, wie unter Unix und C üblich, die Anzahl der Millisekunden zurück, die seit dem 1.1.1970 vergangen sind.
Perl Cookbook:
Perl represents points in time as intervals, measuring seconds past a point in time called the Epoch. On Unix and many other systems, the Epoch was 00:00 Jan 1, 1970.
also :
$usa = time();
$europa = localtime($usa+28800); #USA + (8 x 60 x 60)s
Gruß Frank
Hallo Frank!
Da scheint in SELFHTML noch'n Fehler drin zu sein:
Yoh, ist ein Fehler.
$usa = time();
$europa = localtime($usa+28800); #USA + (8 x 60 x 60)s
Trotzdem sollte man solche *komplizierten* Rechnungen lieber Perl selber machen lassen, also
$mittel_europa = localtime($usa+8*60*60);
;-)
Ach ja, evtl. kann man auch gleich von GMT aus zurueckrechnen, das liegt ja gleich nebenan. Allerdings muss man da Sommer-/Winterzeit unterscheiden. Ich weiss nicht, wie es sich diesbezueglich in den US-Zeitzonen verhaelt.
$dtls = gmtime(time()+2*60*60); # Sommerzeit
$dtlw = gmtime(time()+1*60*60); # Normale Zeit (Winterzeit)
So long
Hallo,
ich würde die Zeitdifferenz von 6h in sec umrechnen, von der dortigen zeit abziehen und diese 9stellige Zahl dann usergefällig zurückrechnen likehttp://www.i-netlab.de/perlbase/zeit/961839865167.htm, wenn Du statt localtime() gmtime() verwendest, sollte es auch mit der summertime klappen...
Grüßli, Rolf
Hallo alle zusammen!
Ich hab da ein problem. Mein Webserver steht in den USA und folglich geht die Uhrzeit dort auch anders. Ich möchte aber gerne die deutsche Uhrzeit in meinen Skripten benutzen :o(
Weil da lassen sich Forums- und Gästebucheinträge besser verwalten und verfolgen.
Die Differenz der zeiten weiss ich, aber wie konvertiere ich die am besten ?! Mit Datumsübersprung usw. ?!
Kann mir da jemand helfen ? Vieleicht gibt es ja auch ne einfachere Lösung, als die Minuten, Stunden, .. hochzu rechnen und dabei auf Überläufe (z.B. in den USA 23 Uhr .. dann plus 8 Stunden = 31 Uhr .. also tag um eins erhöhen und Stunden mminus 23...)
gibt es danicht eine einfachere Lösung ?! :o(Vielen Danke für Eure Hilfe
DanielD
Hi Daniel,
weiss nicht wie Du das machst, holst Dir aber doch die Serverzeit sicher über $zeit = time(); und wendest dann die localtime-Funktion auf $zeit (Steht auch in SELFHTML irgendwo bei PERL..Datum und Uhrzeit). Aber lange Rede kurzer Sinn, änder doch schon den Wert, den dir die time-Funktion liefert, mußt dazu nur die Zeitdifferenz in Sekunden addieren bzw abziehen.
Danke an alle für die schnelle Antwort ;o)
Ich werd es nachher gleich mal ausprobieren.
Hätte nicht mit so schnellen und vorallem soo vielen Antworten gerechnet !
Thanx DanielD
Hi!
Danke an alle für die schnelle Antwort ;o)
Nur Wunder dauern _etwas_ länger ;-)
Gruß Frank