login  Naam:   Wachtwoord: 
Registreer je!
 Forum

werken met een DATETIME

Offline daanlaan - 22/01/2009 23:11
Avatar van daanlaanMySQL interesse Ik moet een tellertje maken en zou daarbij de minuten moeten selecteren van een datetime in de DB en deze aftrekken van een bepaald aantal minuten.
hier maak ik dan een for-lus van.
Maar het lukt me niet om deze minuten te selecteren en af te trekken van mekaar

9 antwoorden

Gesponsorde links
Offline Wim - 22/01/2009 23:13
Avatar van Wim Crew algemeen http://dev.mysq...tions.html

mysql heeft een functie MINUTE om de minuten er uit te halen, en een functie DATEDIFF om het verschil tussen 2 datums te berekenen....
Offline daanlaan - 22/01/2009 23:23 (laatste wijziging 22/01/2009 23:41)
Avatar van daanlaan MySQL interesse ik heb deze waardes:

  1. $last => DATETIME

en nu zou ik deze bewerkingen moeten doen:

MINUTE($last - NOW())
SECOND($last - NOW())
Offline Rens - 23/01/2009 00:18
Avatar van Rens Gouden medaille

Crew algemeen
Ja, doe dat dan..?
Of wat is het probleem?
Offline daanlaan - 23/01/2009 19:24 (laatste wijziging 23/01/2009 19:26)
Avatar van daanlaan MySQL interesse dat ik niet juist weet hoe,

  1. echo MINUTE($last - NOW());
  2. echo SECOND($last - NOW());
Offline marten - 23/01/2009 22:33
Avatar van marten Beheerder Er is verschil tussen SQL en PHP. SQL voer je uit op een MySQL of andere SQL server. Deze leveren een bepaalde resultaten set op. Deze kan je dus uitlezen met een andere taal. Deze taal kan PHP zijn maar ook vele andere.

Je zou het dus als volgt kunnen doen:

  1. $sQuery = "SELECT datediff('laatst', NOW()) AS verschil_in_dagen FROM tabel WHERE ID = 1";
  2.  
  3. $rResult = mysql_query($sQuery);
  4.  
  5. while($row = mysql_fetch_array($rResult)) {
  6. echo 'In dagen ' . $row['verschil_in_dagen'];
  7. echo 'Verschil in uren ' . $row['verschil_in_dagen'] * 24;
  8. }
  9. // en verdere berekeningen


Wat je verder kan doen, maar niet aangeraden wordt, is het door PHP op te laten lossen door middel van de volgende functie:

http://www.site...mp;id=1402
Offline daanlaan - 24/01/2009 19:28
Avatar van daanlaan MySQL interesse ik was het zo aan het proberen:

  1. for($sec=60;$sec>=0;$sec--)
  2. {
  3. echo $sec;
  4. sleep(1);
  5. }


maar $sec geef ik dan de waarde van het aantal seconden die er nog over zijn.
Maar het vreemde is dat hij niet werkt met de sleep(1);
als ik dat weg doe werkt de pg wel maar drukt hij ze natuurlijk allemaal tegelijk af
Offline Ibrahim - 24/01/2009 19:43
Avatar van Ibrahim PHP expert Sleep zal de script output uitstellen tot de opgegeven tijd. Dit betekent dat hij na 60 seconden pas iets op het scherm zal weergeven. Voor iets wat jij (denk ik) wil, is JavaScript handiger. En dan doel ik op de JavaScript functie setTimeout of setInterval
Offline daanlaan - 24/01/2009 19:51 (laatste wijziging 24/01/2009 20:19)
Avatar van daanlaan MySQL interesse Het lukt me niet met een javascript setTimeout()

  1. <script>
  2. var teller = 60;
  3. function tijdover()
  4. {
  5. document.f1.timeleft.value = teller;
  6. teller--;
  7. setTimeout("tijdover()",1000);
  8. }
  9. </script>


en dan komt er nog een stukje php en dan weer html waarin de form met een text input, name="timeleft"
maar hij doet het niet... 
op een gewone offline html pagina doet hij het wel met dit scriptje
Offline Ibrahim - 24/01/2009 22:02 (laatste wijziging 24/01/2009 22:02)
Avatar van Ibrahim PHP expert Dit werkt wel bij mij. Ik denk dat het komt, omdat je pagina mogelijk veel elementen heeft. Daarom heeft javascript tijd nodig om de elementen te "indexeren". Daarvoor is de window.onload functie.

  1. <title>JavaScript</title>
  2. <script type="text/javascript">
  3. var teller = 60;
  4. function tijdover() {
  5.  
  6. document.getElementById('result').innerHTML = teller;
  7. teller--;
  8.  
  9. if (teller >= 0) {
  10.  
  11. setTimeout(function() {
  12. tijdover();
  13. }, 1000);
  14. }
  15. }
  16.  
  17. window.onload = function() {
  18. tijdover();
  19. };
  20. </script>
  21. </head>
  22. <div id="result"></div>
  23. </body>
  24. </html>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.349s