Thema: rechnet mktime falsch ?

Der folgende Code gibt als Ergebnis 01:06:00 aus. Das ist mir aber eine Stunde zuviel. Bin ich da irgendwie von der Serverzeit abhängig?

error_reporting(E_ALL);
 
setlocale (LC_ALL, 'de_DE@euro', 'de_DE.iso-8859-1', 'de_DE', 'de', 'ge', 'deu_deu', 'German_Germany');
 
$plan  = mktime(06,44,00,06,18,2006,0);
$tats  = mktime(06,50,00,06,18,2006,0);
$versp = $tats - $plan;
$zeitarray = getdate($versp);
$zeitversp = $zeitarray["hours"].":".$zeitarray["minutes"].":".$zeitarray["seconds"];
echo $zeitversp;

Zuletzt bearbeitet von DerLangeFrank (19-06-2006 20:22:36)

2

Re: rechnet mktime falsch ?

Hi Frank.

interessant.
Wenn ich das $plan-Datum auf 5 Uhr stelle, erhalte ich gleich 2Stunden.
Daher würde ich davon ausgehen, dass er die erste "angebrochene" Stunde als 1 wertet.

Als Konsequenz würde ich einfach 1 von $zeitarray["hours"] abziehen...
Oder Du rechnest auf Basis von $zeitarray["0"] selbst die Zeiten aus....

Viel Erfolg,

tink

Beleidigungen sind die Argumente derer, die keine Argumente haben

Re: rechnet mktime falsch ?

Ich habe nochmals im PHP-Handbuch nachgelesen und ein paar Varianten ausprobiert. Diese Aufbereitungsfunktionen bringen irgendwie die lokale Zeitzone mit ins Spiel. Nun werde ich gmdate() verwenden. Das Ergebnis ist wie gewünscht und der Code ist kurz und übersichtlich.

error_reporting(E_ALL);
 
setlocale (LC_ALL, 'de_DE@euro', 'de_DE.iso-8859-1', 'de_DE', 'de', 'ge', 'deu_deu', 'German_Germany');
 
$plan = mktime(06,44,00,06,18,2006,0);
$tats = mktime(06,50,00,06,18,2006,0);
$zeitversp = gmdate("H:i:s",$tats - $plan);
 
echo $zeitversp;