date() - eine Stunde zuviel

Theeagle

Erfahrenes Mitglied
Hi
Ich habe ein Problem mit der Zeitformatierung
Und zwar will ich aus die Sekunden aus einer Variable formatieren lassen!

PHP:
echo date("h:i:s",$sek);

in $sek steht zum Beispiel der Wert 10
nun soll das Script 00:00:10 ausgeben!
Machts aber nicht
Es wir 01:00:10 ausgegeben....wo kommt diese Stunde her?

hängt das mit der einen Stunde Zeitunterschied in Deutschland zusammen
und wie kann ich den Wert ohne diese Stunde ausgeben?

Ich bin für jede Antwort dankbar

Theeagle
 
Zuletzt bearbeitet:
Also.
date() erwartet ja ein Parameter im UNIX-Timestamp Format. Der UNIX-Timestamp ist folgendermaßen definiert (Definition der Funktion time()).

Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).

Sprich wenn du ihm als Parameter 10 übergibts, entspricht das dem 1.1.1970 00:00:10 GMT. Greenwich Mean Time ist aber eine Zeitzone versetzt (früher) - in England halt. Und weil es am 1.1.1970 als es in Greenwich grade 00:00:10 war, hier schon 01:00:10 war und dein Server (PHP-Interpreter) wohl weiss, in welcher Zeitzone er steht ...

So müsste es sein. Würde mich wundern, wenn ich mich täusche ;)
 
emm dein funktionsaufruf ist falsch!
PHP:
date("d.m.y - H:i:s",time());
so wäre es etwa korrekt, du solltest deine sekundenzeit zuerst in einen timestamp umwandeln mittels:
PHP:
mktime ( [int Stunde [, int Minute [, int Sekunde [, int Monat [, int Tag [, int Jahr [, int is_dst]]]]]]])

am besten zuerst date("d.m.y",time()) machen, dann mktime für deine sekundenzeit und dann die "neue" generierte zeit einfach mit date neu generieren!
 
@Subwoover. Ich will ja nicht die aktuelle Uhrzeit (time()) verwenden!
hmm..
Jetzt müsste ich meine Frage bissl umformulieren!
Also ich suche nun eine Alternative zu date(), da date() die 1h aufgrund von der Greenwich zeit immer dazuaddiert!
Der Alternative Befehl muss die Zeitzonen ignorieren!

bzw. brauche ich eine andere Möglichkeit um einen Sekundenwert in ein hh:mm:ss format zu bekommen ohne das irgendwas durch Zeitzonen verändert wird
 
Zuletzt bearbeitet:
geht ja so wie ichs dir gschrieben hab, also nochmal:

PHP:
date ("d.m.Y",time());

$neuezeit  = mktime(deinestunde,deineminute,deinesekunde,deinmonat,deintag,deinjahr);

date ("H:i:s",$neuezeit);

probiers mal ;)
kannst ja jede zeit bei mktime einsetzn und bekommst neuen timestamp
 
Kann dieser hh:mm:ss Wert über 24:00:00 hinaus gehen ? Wenn ja müsstest du dir sowieso was eigenes schreiben, da sämtliche Datumsbezogenen Funktionen danach ja in den Tage-Bereich springen und die hh wieder bei 00 losgehen.
 
HuHu,
bin grade aufgestanden ;) Alsow eis sich nicht so genau ob ich hier was zum Thema bringe ;)

Ich hatte es zumindest mal, dass die Uhrzeit des Linuxservers um eine Stunde falsch ging und ich den ersteinmal stellen musste... :P
Hba am Script rumprobiert und geschraubt, aber das wollte einfach nicht funktionieren :/
Und dann bin ich irgendwann auf die Idee gekommen, dass es ja an dem Server selbst liegen könnte....und siehe da, das wars ;)

Wobei ich denke, dass dies nur bei eigenen Servern vorkommt :P
Denke mal, dass die "großen" Hoster darauf schon achten ;)
 
Schön Lars ;)

Aber das ist kein Fehler nirgendwo. Es ist einfach Fakt, dass wenn er einen timestamp = 10 übergibt, dass dem 1.1.1970 00:00:10 in GMT entspricht. Da wir aber GMT+1 sind ist timestamp=10 bei uns logischerweise 01:00:10 und in der Türkei wäre es 02:00:10 usw.

Selbst bei Hostern habe ich schon reichlich abenteuerliche Zeiteinstellungen gesehen :-)

Greetings
Tim
 
Wofür ihr in einem Tag nicht im Stande seid habe ich bloß ein paar Minuten gebraucht:
    Was macht man, wenn eine analoge Uhr eine Stunde vor geht?
    Man stellt sie einfach 23 Stunden vor, und schon wieder geht sie richtig:
[color="2c2c8c"]
&nbsp;&nbsp;<?php
&nbsp;&nbsp;&nbsp;&nbsp;$sek = 10;
&nbsp;&nbsp;&nbsp;&nbsp;echo(date("H:i:s",($sek+82800)));
&nbsp;&nbsp;?>
[/color]

Die 82800 setzen sich dabei aus 60&times;60&times;23 zusammen.
 
Gumbo, das hätte man auch anders sagen können. Als ob uns hier nicht klargewesen wäre, dass man auch einfach 23h vor, oder jeh nach timestamp auch 1h zurückstellen kann.

Es ging glaube ich in allen Beiträgen eher darum, zu ergründen, warum denn das Problem so ist. Da "stupide" 23h zuzuaddieren, ist ja nicht die große Kunst. Nur wenn es ihm im Endeffekt sogar darum gehen sollte, ein hh:mm:ss Formta zu erzeugen, was mehr als 24h anzeigen kann, dann muss er sich sowieso was andere überlegen.
 
Zurück