php-Liste mit Zeit-Differenz

julia29

Erfahrenes Mitglied
Hallo,
in einer PHP-Liste möchte ich u.a. eine Zeitdifferenz zwischen Zielzeit und jetzt aus einem Unix-Timestamp anzeigen.
Aus der MySQL hole ich mir die Zielzeit und ziehe von dieser die gerade aktuelle Zeit ab. Dann zerlege ich mein Ergebnis (die Differenzzeit) in Tage, Stunden und Minuten.
Angezeigt wird dann jedoch nur wieder meine Zielzeit. Wo steckt hier der Fehler?

PHP:
....
$uts = date('d.m.Y, H:i:s');        //hier wird die gerade aktuelle Zeit reingeschrieben

$zielzeit = $Row['zielzeit'];        //holt den Wert aus der MySQL
$rest = ($zielzeit-$uts);            //die aktuelle Zeit ziehe ich von Zielzeit ab

                                //hier wird die restzeit zerlegt
$std = date('H',$rest);          //Stunden
$min = date('i',$rest);          //Minuten
$sek = date('s',$rest);          //Sekunden
$tag = date('d',$rest);          //Tage

print("<td FONT SIZE=\"-1\">$tag T, $std S, $min m");

Statt der Differenzzeit wird mir nach wie vor nur die in der MySQL gespeicherte Zielzeit angezeigt.
Was muss ich ändern?

Gruß Julia
 
Hi Julia,

in welchem Datumsformat liegt denn dein Datum in der DB?

Was du hier versuchst, ist folgendes.
Beispiel:

22.04.2008 - 15.04.2008 .. Das kann PHP nicht. Damit PHP verstehst, was du willst, musst du das Datum in einen Timestamp umwandeln.

Schau dir hierzu mal die Funktionen mktime(), strtotime() auf http://www.php.net an.

Also beide in einen Timestamp umwandeln - dann klappt das auch mit der Differenz.

Grüsse,

magnus
 
Hallo magnus,

in welchem Datumsformat liegt denn dein Datum in der DB?
->Julia: als Unix_Timestamp

Was du hier versuchst, ist folgendes.
Beispiel:

22.04.2008 - 15.04.2008 .. Das kann PHP nicht. Damit PHP verstehst, was du willst, musst du das Datum in einen Timestamp umwandeln.

Die aktuelle Serverzeit habe ich in die Variable $uts versucht zuschreiben, mit date() wie auch mit UNIX_TIMESTAMP($uts).
Bei date() wird Fehlermeldung wie unzureichende Formatierung angegeben und bei UNIX_TIMESTAMP kommt zwar keine Fehlermeldung aber es wird auch nicht gerechnet.

Wie muss meine Codezeile aussehen wenn ich aus der Variable $uts ein Timestamp machen will um dann die Differenz mit dem 2. Datum aus der MySQL (ist bereits Timestamp) ermitteln zu können?
 
hallo,

wenn das format in der db unix timestamp ist dann "könnte" es an den klammern liegen ...
und das du die aktuelle zeit nicht im unix timestamp hast ....

$uts = time();


$differenz = $zielzeit - $aktuellezeit;



mfg phil
 
Hi Julia,

ganz einfach: Wenn du den aktuellen Timestamp haben willst, genügt der Befehl time();

Sprich:

PHP:
<?php
$rest = time()-$uts;
?>

Das kannst dann in Stunden, Minuten usw. umrechnen.

Grüsse,

Magnus
 
Zurück