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