Hallo,

Ik zit hier met een lastige...
Ik ben bezig met een text-based webbrowser mmorpg, en nu moet ik dus met tijden zien te werken.
Elke keer als iemand een pagina bezoekt, word zijn 'lastclick' opgeslagen in de database.
Dat is gewoon een varchar, met bijv. deze waarde:
2007-12-09 15:32:35

Dit is de functie:
date('Y-m-d H:i:s')

Alleen, nu wil ik dus dit uit zien te rekenen:
date('Y-m-d H:i:s')-$lastclick;
Dus dat je het verschil ziet tussen nu en de laatste click.

Dan zou hij zoiets terug kunnen geven:
"2007-12-09 15:34:35" - "2007-12-09 15:32:34"=0000-00-00 00:02:01
En zoiets:
"2007-12-09 15:34:35" - "2006-10-04 12:36:32"=0001-02-05 05:02:03

Enzovoort.
Zou iemand weten hoe dit moet?
En dan het liefst dat ik alleen het aantal seconden terugkrijg.
Bijvoorbeeld als het verschil 1 uur is, 23 minuten en 20 seconden, dat ik dit terugkrijg:
1*60*60
+
23*60
+
20
=
5000 (5000 seconden dus)

Zou iemand weten hoe ik dit moet doen?
WAAAAAT, een datum als 'gewoon een varchar'? Dat is je reinste onzin.

Maak hier een datetime veld van en je kan prima rekenen met de datum.
Dat is gewoon een varchar
En dat is waar je een grote fout maakt! Je gebruikt een DATETIME om deze waarde in op te slaan.

Het rekenen gaat dan heel eenvoudig:

SELECT
    TIMEDIFF(NOW(), lastclick) AS verschil
FROM
    tabel
Was ik net even eerder Blanche ;) al heb jij wel een uitgebreider antwoord...
Was veel te laat
zo :P
Nou, bedankt in elk geval ;)
Ik had eerst ook de tijd/datum in een datetime veld staan, maar ik wist niet goed hoe ik ermee om moest gaan in PHP zelf..
Dus ik kan het gewoon via de query doen?
Ik zal eventjes wat uit gaan proberen.
Oke :) het werkt!
Ik krijg nu 00:00:07 terug als het verschil 7 seconden is.
Alleen, 00:01:21 krijg ik terug als het 1 minuut en 21 seconden heeft geduurd.
Hoe kan ik daar 81 van maken?
Want 1 minuut=60 seconden
dus 1*60=60+21=81.
En zo ook met uren...
Weet iemand hoe ik dit zou moeten doen?
bump?
Gebruik TIME_TO_SEC:

SELECT
    TIME_TO_SEC(TIMEDIFF(NOW(), lastclick)) AS verschil
FROM
    tabel

Maar dat had je natuurlijk ook zelf in de handleiding kunnen vinden...
ooooohkeey dankje :D

Reageren