Beste

Het lukt mij niet om een tijd te berekenen. Ik wil namelijk als je bv een datum en tijd hebt die uit een database komt als 2010-08-16 23:47:24 en dan nog een als 2010-08-17 25:47:24 dat ik dan (liefst met PHP) het verschil kan berekenen.

Kan dit? en hoe?

Bedankt alvast!
Ruben Portier
Kijk eens naar de mysql functies timediff en datediff
Volgens mij kan je in MySQL zelfs twee datums van elkaar aftrekken met - (minus symbool), maar anders werken die functies ook goed.

In PHP is het iets lastiger. Je zou [php]strototime[/php] kunnen gebruiken om de datums om te zetten in een grote integer, en die twee getallen van elkaar af kunnen trekken. met [php]date[/php] of [php]strftime[/php] kan je er dan weer iets moois van maken, of je kan zelf gaan rekenen, want die getallen zijn immers het aantal seconden. Deel het door 3600 en je hebt het aantal uren verschil etc. Nadeel van deze aanpak is wel dat dat nummer dus een linux timestamp is, en omdat een nummer binnen PHP maar een bepaalde grote kan hebben werkt het bij mijn weten alleen betrouwbaar voor datums tussen 1970 en 2038.
Doe het gewoon met mySQL. De ingebouwde functies zijn daar speciaal voor bedoeld. Wanneer je het via PHP wilt oplossen moet je alles zo omslachtig gaan aanpassen dat het op den duur misschien ook niet heel betrouwbaar is.

DATEDIFF en TIMEDIFF zijn speciaal gemaakt om verschillen in respectievelijk de datum en de tijd op te vragen.
Oke bedankt allemaal! Maar stel dat ik nu iets wil maken dat als ik op start klik een javascript telt tot er op stop gedrukt wordt. Maar php houdt dan de start en stop-tijd bij en die zet ik dan in een database en dan met mysql kan ik ze aftrekken? En moet ik dan met PHP maken dat ik de datum apart hou van de tijd? En dan bij de datums doe ik DATEDIFF en bij de tijd TIMEDIFF neem ik aan? Dan moet ik exact dezelfde tijd uitkomen als de javascript had berekend. Maar heeft iemand enig idee hoe ik dat met javascript kan doen? Of een site met wat info. Dus gewoon een javascript dat ik kan uitvoeren dat begint te tellen van 00:00:00 en dan elke seconde zal updaten.

Alvast heel erg bedankt voor de leerrijke informatie!

Reageren