login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Uren berekenen

Offline Chilion - 14/04/2008 12:16
Avatar van ChilionMySQL interesse Hallo Allemaal, ik ben met een klein applicatietje bezig waarbij ik graag de tijden uit een database om wil zetten naar uren.

Wat is heb zijn allerlei tijden in de kolom begintijd, daarnaast heb ik ook allerlei tijden in de kolom eindtijd.

Wat ik dus wil het verschil tussen beide kollomen berekenen en die op het scherm laten zien.
De databasevelden zijn gewoon text. Ofterwijl, er staat gewoon:
13:00 in als een text. Is hiermee te rekenen?

Chilion

5 antwoorden

Gesponsorde links
Offline neforce - 14/04/2008 12:27
Avatar van neforce Nieuw lid Als ik jou was zou ik dit omzetten naar timestamp

dan kun je mbv de functie

date

hiermee gaan rekenen
Offline jvs - 14/04/2008 12:42
Avatar van jvs HTML beginner Je kan idd beter je velden van het type 'datetime' maken. Op deze manier kan je denk ik zelfs gewoon met mysql het verschil tussen twee tijden opvragen. Als ik me niet vergis noemt die functie TIME_DIFF
Offline Berten - 14/04/2008 13:34 (laatste wijziging 14/04/2008 13:35)
Avatar van Berten PHP beginner Als je inderdaad de velden DATETIME maakt kan je het verschil rechtstreeks uit je databank halen.

  1. SELECT TIME_DIFF(time1,time2) FROM TABLE;


de output is
dagen:uren:minuten.miliseconde

TIME_DIFF
Offline timmie_loots - 14/04/2008 16:34
Avatar van timmie_loots PHP gevorderde Om even een oplossing te geven waarbij een totale ommezwaai qua database niet nodig is:

  1. <?php
  2.  
  3. /* Selecteer eerst de velden, ik ga hier uit van de velden begintijd en eindtijd */
  4.  
  5. $result = mysql_query("SELECT * FROM `tabel`");
  6.  
  7. // Resultaten doorlopen
  8. while ($row = mysql_fetch_assoc($result)) {
  9.  
  10. // Even de begintijd wat bewerken, zodat we de uren en minuten apart hebben, (int) ervoor zodat we straks kunnen rekeken
  11. $begintijd_uren = (int)substr($row['begintijd'], 0, 2);
  12. $begintijd_minuten = (int)substr($row['begintijd'], 3, 2);
  13.  
  14. // Idem voor de eindtijd
  15. $eindtijd_uren = (int)substr($row['eindtijd'], 0, 2);
  16. $eindtijd_minuten = (int)substr($ow['eindtijd'], 3, 2);
  17.  
  18. // Eerst het verschil in uren
  19. $verschil_uren = $eindtijd_uren - $begintijd_uren;
  20.  
  21. // Dan het verschil in minuten
  22. // Delen door 60, want we willen het in uren hebben
  23. $verschil_minuten = ($eindtijd_minuten - $begintijd_minuten) / 60;
  24.  
  25. // Het totale verschil
  26. $verschil_totaal = $verschil_uren + $verschil_minuten;
  27.  
  28. // Hier kun je er dan iets mee doen, maar dat moet je zelf wel kunnen verzinnen
  29.  
  30. }
  31.  
  32. ?>
Offline Chilion - 15/04/2008 08:33
Avatar van Chilion MySQL interesse Timmie_loots, bedankt!

Het probleem met timestamp etc is dat de uren ingevuld worden in een textbox.

Ik ga hier even mee stoeien, nogmaals bedankt!
Chilion 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.188s