Zeitzone im cgi-Script ändern

Hallo,

mein Script nutzt folgenden Peogrammcode um die Zeit/Datum zu ermitteln.
Da der Server aber nicht in Deutschland steht müsste ich die Zeitausgabe so ändern, dass 6 Stunden hinzu gezählt werden. Nur hab ich leider keine Ahnung wie ich dies machen muss. Wäre cool, wenn mir de jemand helfen könnte. Danke

($sec,$min,$hr,$day,$month,$year,$day_of_week,$day_of_year,$some) = localtime(time);
@months = („January“,„February“,„March“,„April“,„May“,„June“,„July“,„August“,„September“,„October“,„November“,„December“);

$year = $year + 1900;

$DATE = „$months[$month]-$day“;
$SHORTDATE = „$day $months[$month], $year um $hr:blush:min:blush:sec“;

Grüße
Pfanni

Da der Server aber nicht in Deutschland steht müsste ich die
Zeitausgabe so ändern, dass 6 Stunden hinzu gezählt werden.
Nur hab ich leider keine Ahnung wie ich dies machen muss. Wäre

($sec,$min,$hr,$day,$month,$year,$day_of_week,$day_of_year,$some) = localtime(time+6*3600);

Dies berücksichtigt aber noch nicht die Sommer/Winterzeit Umstellung - Hier können weitere Differenzen entstehen.
Besser wäre statt localtime - gmtime zu verwenden.
Gleichzeitig wäre die Routine unabhängig vom Standort des Servers.
Das könnte dann so aussehen:

my $isDst = (localtime(time))[8];
($sec,$min,$hr,$d,$m,$y,$dow,$doy) = gmtime(time+3600*($isDst+1))

+1 wegen eine Stunde Zeitversatz von D nach Greenwich

Eines brücksichtigt oben stehender Code natürlich immer noch nicht: der u.U. unterschiedliche Zeitpunkt der Sommer/Winterzeitumschaltung.

Vielelicht hilft es Dir aber vom Konzept her weiter.
Klaus

Hallo,

mit diesem Programmcode hat es prima funktioniert.

my $isDst = (localtime(time))[8];
($sec,$min,$hr,$day,$month,$year,$day_of_week,$day_of_year,$some) = gmtime(time+3600*($isDst+1));
@months = („January“,„February“,„March“,„April“,„May“,„June“,„July“,„August“,„September“,„October“,„November“,„December“);

$year = $year + 1900;

$DATE = „$months[$month]-$day“;
$SHORTDATE = „$day $months[$month], $year um $hr:blush:min“;

Was mich noch etwas stört ist, dass die aktuelle uhrzeit in folgendem Format ausgegeben wird: „0:7“ Könnte man da nicht noch was anpassen damit es so ausgegeben wird: „00:07“ ???

Grüße
Pfanni

$DATE = „$months[$month]-$day“;
$SHORTDATE = „$day $months[$month], $year um $hr:blush:min“;

Formattier es doch mit sprintf (siehe perldoc - f sprintf) mit Bsp: my $date = sprintf „%02d %s, %4d um %02d:%02d“,$day,$months[$month],$year,$hr,$min;

Klaus