login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Aftellen naar datum en tijd?

Offline pascalbianca - 18/06/2016 06:47
Avatar van pascalbiancaNieuw lid Hallo mensen,

Ik wist niet waar ik mijn vraag het beste kon plaatsen dus heb ik het voor de zekerheid maar hier gedaan.

Ik heb een vraag over het volgende.
In website heb ik een teller die aftelt tot een bepaalde datum en tijd.
Dit werkt prima maar ik moet wel in mijn code de eind datum invullen.
Het script ziet er als volgt uit.:

  1. <script type="application/javascript">
  2. function countdownComplete(){
  3. alert("Invasie Samarai is afgelopen.");
  4. }
  5.  
  6. var test1 = new Countdown({
  7. month : 07,
  8. day : 4,
  9. hour : 4,
  10. ampm : "am",
  11. minute : 48,
  12. second : 0,
  13. hideLine : true,
  14. style : "flip", // <- no comma on last item!!
  15. labelText : {
  16. second : "Seconden",
  17. minute : "Minuten",
  18. hour : "Uren",
  19. day : "Dagen",
  20. month : "Maanden",
  21. year : "Jaren" // <- no comma on last item!
  22. },
  23. });
  24.  
  25.  
  26. </script>


Maar nu wil ik eigen een script hebben waarbij ik bv alleen als variabele de aantal dagen hoef in te vullen en dat het script aan de hand van die waarde laat zien hoe lang nog te gaan is aan dagen, uren , minuten en seconden.
Is dit mogelijk en zo ja hoe?

6 antwoorden

Gesponsorde links
Offline Thomas - 18/06/2016 14:41 (laatste wijziging 18/06/2016 14:44)
Avatar van Thomas Moderator Dit alles ziet er uit als JavaScript, dus verplaatst naar het JavaScript forum.

Heb je een verwijzing naar de werking van de rest van de broncode? Dit is enkel een aanroep van de functionaliteit genaamd "Countdown".

Ik denk dat hetgeen je wilt bereiken niet gaat vliegen in de huidige opzet, en wel om de volgende reden: JavaScript heeft zelf geen historie, en de browser waarin je de JavaScript aanroept ook niet. Elke keer dat je een script aanroept met de opdracht "ga 4 dagen aftellen" dan zal dit script daarmee dus telkens opnieuw beginnen. Het probleem is dat je geen vast eindpunt (datum X tijd Y) hebt omdat je een variabel beginpunt hebt (nu + Z dagen+uren). De bovenstaande functionaliteit telt af naar een specifieke datum en tijd.

Het zou wat anders zijn als je gebruik maakt van een serverside scriptingtaal. Je zou dan informatie kunnen vastleggen, bijvoorbeeld in een database. Daar zou je dan verschillende vaste tijdstippen kunnen opslaan met (ten opzichte van deze vaste tijd) een relatieve duur (bijvoorbeeld: nu (opgeslagen in database) plus 4 dagen). Vervolgens zou je dan wat extra code kunnen schrijven die dat exacte tijdstip van aflopen uitrekent, en dat vervolgens als informatie voert aan de bovenstaande functionaliteit. Op die manier zou het wel kunnen, maar dit vereist dus dat je ergens op een of andere manier informatie vastlegt, want JavaScript en webpagina's (in het algemeen: HTTP) heeft geen geheugen / kan niets van zichzelf onthouden.
Offline pascalbianca - 19/06/2016 10:23 (laatste wijziging 19/06/2016 11:47)
Avatar van pascalbianca Nieuw lid Is het misschien mogelijk mij hiermee te helpen want veel koek heb er niet van gegeten.
Ik heb zelf wat geprobeerd.:

  1. <?php
  2. $dtz = new DateTimeZone("Europe/Madrid"); //Your timezone
  3. $now = new DateTime(date("Y-m-d H:i:s"), $dtz);
  4. $dagen = '2 days';
  5.  
  6. echo $now->format("d-m-Y H:i:s")."<br>";
  7. echo "<br>";
  8. echo date('d-m-Y H:i:s', strtotime($dagen));
  9. ?>


Dit werkt, zolang ik alleen volledige dagen gebruik.
Maar als ik bv. 2.5 dagen invul bij $dagen dan slaat hij door.

update
Lol was gaan zoeken op functie strtotime en zat redelijk goed, moet bij $dagen het zo dan invullen 2 days 4 hours

Maar nu wil ik dat binnen een html stukje zetten , alleen dan zie ik deels de code en het gaat mis bij deze regel.:
  1. echo $now->format("d-m-Y H:i:s")."<br>";


Tevens de eind datum tijd loopt mee omhoog en ik wil eigenlijk dat hij blijft staan en de dagen uren afnemen dan.
Hopelijk te begrijpen wat ik wil.
Offline Thomas - 19/06/2016 23:32 (laatste wijziging 19/06/2016 23:56)
Avatar van Thomas Moderator Zoals gezegd zul je dan ergens een vaste datum moeten vastleggen in combinatie met een afloopperiode (hoe je die ook wilt vormgeven met 2.5 dagen of wat dan ook) en dan zul je een stukje code moeten schrijven die dit omvormt naar een concrete einddatum en -tijd die je invoert in je Countdown() functionaliteit zodat je die niet om hoeft te schrijven.

Oftewel je moet een soort van laag code/functionaliteit om je Countdown() thingy schrijven en daarbij moet je op een of andere manier een absolute datum (moment van creatie van de counter) vastleggen in combinatie met de relatieve periode. Anders loopt die teller elke keer opnieuw af vanaf het huidige tijdstip in plaats van het moment van creatie van de teller, wat je eigenlijk wilt.
Offline pascalbianca - 20/06/2016 00:09
Avatar van pascalbianca Nieuw lid uh ja, zo te zien dus te hoog voor mij gegrepen, jammer.
Was een goede oplossing geweest voor mijn site , maar dan een andere oplossing gaan zoeken denk ik, al heb ik helaas geen idee hoe.
Offline Thomas - 20/06/2016 17:31
Avatar van Thomas Moderator Hoe is je ervaring met serverside scriptingtalen, zoals bijvoorbeeld PHP?
Maak je gebruik van / heb je de beschikking over een database?
Wil je meerdere tellers tegelijkertijd af laten lopen?
Hoe ziet de website er uit waarin je deze teller(s) wilt integreren en voor welk doel gebruik je deze?

Wat je probeert te bereiken lijkt mij niet zo lastig.
Offline pascalbianca - 21/06/2016 08:21
Avatar van pascalbianca Nieuw lid PHP gaat een beetje.
Ik bezit zelf over een eigen thuis server lopend op xampp.
Om te beginnen wil ik 1 teller op de website.
Het is een game website waarin ik de teller wil laten aflopen totdat een event is afgelopen.



Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.238s