Login-Zeit berechnen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abziehen
code
date
datum
dauer
denkfehler
ergebnis
frage
funktion
gescheites
grad
kleines problem
lade
login
minute
problem
sekunde
stunde
tag
verwenden
-
Hallo Community
ich habe ein tag/kleines problem">kleines problem, sollte für die php-pros unter euch aber nicht alzu schwer zu lösen sein.
google hab ich schon mit unterschiedlichen suchanfragen bombardiert, habe jedoch nix gescheites herausbekommen.
zu meiner frage also:
beim login auf meiner seite wird die aktuelle zeit mit time() in ein cookie gespeichert. (mag vielleicht nicht die schönste lösung sein, aber fürs erste reichts :D)
wenn ich jetzt die seite neu lade möchte ich oben angezeigt bekomme "Du bist seit 1:05 Minuten eingeloggt".
klingt doch alles ganz einfach. aktuelle zeit - zeit aus dem cookie und dass dann mittels date(...) umbasteln.
nur genau da habe ich wohl irgendwo einen denkfehler.
denn wenn ich mich um 20:58 einlogge und um 21:11 die seite neulade steht dort ich sei 1 stunde und 12 minuten angemeldet (was natürlich nicht stimmt da es nur 12 minuten sind; eigentlich ja 13 aber die sekunden werden ja nicht angezeigt).
was mach ich also falsch? oder muss ich einfach nur eine stunde vom ergebnis abziehen?
mfg -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das liegt an der date() Funktion, deshalb musst du dem timestamp 3600 Sekunden abziehen, das entspricht einer Stunde.
So gehst du dem Problem aus dem weg. -
Was wäre, wenn einer jetzt seit über einem Tag angemeldet ist?
Die date() Funktion ist für Daten gedacht und nicht um die Dauer von etwas auszugeben, dazu kannst du eine Funktion wie diese verwenden.
<?php function getDuration($seconds) { $sec = $seconds % 60; $min = ($seconds%3600 - $seconds%60) / 60; $h = ($seconds%86400 - $seconds%3600) / 3600; $d = ($seconds - $seconds%86400) / 86400; return (($seconds>=86400) ? $d." Tag(e) " : ""). (($seconds>=3600) ? $h." Stunde(n) " : ""). (($seconds>=60) ? $min." Minute(n) " : ""). $sec." Sekunde(n)"; } ?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage