Hallo,
Wenn ich die lokale Zeit ausgebe, wird automatisch immer die Sommerzeit ausgegeben, ich möchte aber bei Winterzeit auch die Winterzeitangabe, kann man das automatisch einstellen? Wie?
Ich arbeite mit localtime().
localtime ist von der Sytsemeinstellung abhängig, also wird dort irgendetwas nicht stimmen.
Wenn ich Berechnungen in Minus und Plus lösen möchte, wie ist dies möglich, bei minus kommt bei mir immer eine sehr komische ausgabe, wie z.B. 0-144:0-57:0-46?
Das sieht für mich so aus, also ob Du nicht rechnest sondern eher Texte generiert hast, in der Art
$differenz_stunden = "$ende_stunde-$beginn_stunde";
$stunde = "".int($sollstunden/3600)."";
$minute = "".int(($sollstunden-($stunde*3600))/60)."";
$sekunde = "".int(($sollstunden-($stunde*3600)-($minute*60)))."";
$sollstunden = 0;
zeitformat();
$total_plus_minus = "$stunde:$minute:$sekunde";
Hier ein etwas ungewöhlicher Vorschlag, aber IMHO recht praktisch:
($sekunde,$minute,$stunde,$tage) =gmtime($sollstunden);
$total_plus_minus = sprintf("%2.2d:%2.2d:%2.2d",$stunde,$minute,$sekunde);
$sollstunden = 0;
Erklärung:
gmtime erwartet eine Zahl, welche die Sekunden seit der epoch-time (das ist irgend ein Datum, meist 1.1.1900 0 Uhr). Das nutze ich hier aus um die Anzahl der Sekunden in die Einzelwerte aufzuteilen. Die Tage habe ich nur mitgenommen, falls Du auch Zeitabstände über 24 Stunden ermitteln willst.
Bis Zeitabstände von einem Monat funktioniert das recht gut.
Und sprintf bzw. printf hilft Dir, das ganze hübsch formatiert auszugeben.
Grüße
Klaus