-
14-03-2014, 05:26 #1Member
- Registered
- 07/12/11
- Location
- dendermonde
- Posts
- 215
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/2
aantal seconden tussen nu en gegeven datum berekenen
Ik probeer een countdown timer te maken, die aftelt naar een bepaalde datum (4 april 2014, 12u 's middags). Ik weet echter bitter weinig af van javascript, en ik slaag er niet in om het juiste aantal seconden te berekenen tussen 'nu' en de einddatum.
Onderstaand script gebruik ik om de timer weer te geven. Zoals het hier staat, telt ie dus gewoon af van 1000 naar 0.
Kan er iemand mij helpen, en zeggen hoe ik dus van de variabele 'count' het aantal seconden maak tussen 'nu' en 4 april 2014, 12u 's middags?
Eeuwige dank

HTML Code:<!DOCTYPE html> <html> <body> <script> var count=1000; var counter=setInterval(timer, 1000); //1000 will run it every 1 second function timer() { count=count-1; if (count <= 0) { clearInterval(counter); return; } document.getElementById("timer").innerHTML=count; // watch for spelling } </script> <div id="timer" style="font-size: 200px;"></div> </body> </html>
no votes
-
-
14-03-2014, 08:23 #2Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
Een dag duurt 24 uur, 1 uur duurt 60 minuten en 1 minuut duurt 60 seconden. Dus neem je het verschil tov de referentiedatum en vermenigvuldigt waar nodig om het geheel in seconden te krijgen.
Als je daar te tam voor bent kan je de logica van Het klokje van een miljard seconden ook gewoon gaan omdraaien.PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
14-03-2014, 12:17 #3Member
- Registered
- 22/06/10
- Location
- Muizen (Mechelen)
- Posts
- 286
- iTrader
- 4 (100%)
- Mentioned
- 0 Post(s)
no votes
-
14-03-2014, 13:03 #4Deactivated user
- Registered
- 14/08/10
- Location
- Diest
- Posts
- 2,419
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 8/16
Edit fiddle - JSFiddle
De seconden zitten dan in de dif variabele.Code:var now = new Date(), now_ms = now.getTime(), then = new Date("April 4, 2014 12:00:00"), then_ms = then.getTime(), dif = Math.floor((then_ms - now_ms) / 1000); console.log(dif);no votes
-
14-03-2014, 21:01 #5Member
- Registered
- 11/05/13
- Location
- Prov. Antwerpen
- Posts
- 595
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Je kan niet op setInterval + een counter variable rekenen voor een timer. Wat wel kan is in de setInterval functie de tijd checken (en er iets mee doen) zoals in sommige voorbeelden hierboven reeds werd aangetoond.
setInterval(function(){}, 1000) zal om de 1000 logic ticks uitgevoerd worden. In het beste geval is dat dus om de 1000 milliseconden MAAR er kan vertraging op zitten als er (ergens) code word uitgevoerd (synchroon) kan het even duren alvorens naar de volgende "logic tick" wordt gegaan.no votes
-
15-03-2014, 22:18 #6Approved 9-lifer
- Registered
- 20/08/09
- Location
- ...
- Posts
- 3,812
- iTrader
- 6 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 7/127
HTML Code:<!DOCTYPE html> <html> <body> <div id="timer" style="font-size: 200px;"></div> <!-- Mag weg als je het stukje "x dagen, x uren en x seconden" niet gaat gebruiken --> <div id="leesbareTimer" style="font-size: 20px;"></div> <script> var count = 1000; var counter = setInterval(timer, 1000); function timer() { var nu = new Date(); var eindDatum = new Date(2014, 6, 4, 12, 0, 0); var verschil = Math.round((eindDatum - nu)/1000); if (verschil <= 0) { clearInterval(counter); return; } document.getElementById("timer").innerHTML = verschil; // Alles hiertussen weg als je het stukje "x dagen, y uren en z seconden" niet gaat gebruiken var leesbaarVerschil = convert(verschil); document.getElementById("leesbareTimer").innerHTML = 'Nog ' + leesbaarVerschil.days + ' dagen, ' + leesbaarVerschil.hours + ' uren en ' + leesbaarVerschil.seconds + ' seconden'; // Alles hiertussen weg als je het stukje "x dagen, y uren en z seconden" niet gaat gebruiken } // Alles hieronder weg als je het stukje "x dagen, y uren en z seconden" niet gaat gebruiken function convert(seconds) { var d = Math.floor(seconds / 86400); var h = Math.floor((seconds % 86400) / 3600); var m = Math.floor(((seconds % 86400) % 3600) / 60); var s = ((seconds % 86400) % 3600) % 60; var returnValue = {days: d, hours : h, minutes: m, seconds : s}; return returnValue; } </script> </body> </html>
Gory, gory, what a hell of way to die.no votes
