Avatar billede tipman Juniormester
14. juli 2020 - 19:25 Der er 3 kommentarer

Javascript count down in sequence

Jeg har følgende kode, som ikke helt virker:

<html>
<body>
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>     

<?php
$respitstarttidjava[0]="Jul 14, 2020 14:55:12";
$respitstarttidjava[1]="Jul 14, 2020 14:56:14";
$respitstarttidjava[2]="Jul 14, 2020 14:57:19";
$respitstarttidjava[3]="Jul 14, 2020 14:58:21";
$respitstarttidjava[4]="Jul 14, 2020 14:59:07";
?>
   
    <script>
        var countRespitX = new Date("Jul 14, 2020 19:55:12").getTime();
        var x = setInterval(function() {
            var now = new Date().getTime();
            var distanceresstartX = countRespitX - now;
            var daysresstartX = Math.floor(distanceresstartX / (1000 * 60 * 60 * 24));
            var hoursresstartX = Math.floor((distanceresstartX % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            if (hoursresstartX < 10) hoursresstartX = "0" + hoursresstartX;
            var minutesresstartX = Math.floor((distanceresstartX % (1000 * 60 * 60)) / (1000 * 60));
            if (minutesresstartX < 10) minutesresstartX = "0" + minutesresstartX;
            var secondsresstartX = Math.floor((distanceresstartX % (1000 * 60)) / 1000);
            if (secondsresstartX < 10) secondsresstartX = "0" + secondsresstartX;
            document.getElementById("elem1").innerHTML = minutesresstart0 + " : " + secondsresstart0;
        }, 1000);
    }
    </script>

<p id="elem1"></p><br>
<p id="elem3"></p><br>

</body>
</html>

Scriptet skulle tælle ned til den tid, som står øverst i scriptet, det virker ikke helt. Hvad er lige galt?
Men det næste er at når den er færdig med at tælle ned, så skal den tage den næste respitstarttid og tælle ned til. Hvordan laver jeg scriptet, så fortsætter med at tælle ned så længe der er nogle respitstarttider? Scriptet kan kombineres med php, hvis det er en fordel.
Avatar billede Slater Ekspert
14. juli 2020 - 20:36 #1
Det er lidt svært at se hvad du ønsker, når dit script ikke virker.

Variablerne minutesresstart0 og secondsresstart0 findes slet ikke - hvad skulle de indeholde?
Hvorfor er der en PHP-sektion når den intet gør? Hvorfor bruge PHP til det overhovedet?

Du bliver nok nødt til enten at vise os noget der virker bare lidt, så vi kan se det, eller at beskrive meget tydeligere hvordan du ønsker det skal virke.
Avatar billede tipman Juniormester
15. juli 2020 - 11:13 #2
Variablerne som ender på 0 skulle ende på X. Jeg synes javascript er svært, det mindste der er fejl, så virker det bare ikke og der kommer ikke nogen fejlmeldinger. Selvom jeg ændrer dem til X, så virker det stadig ikke. Kan ikke lige se hvor fejlen er.
Scriptet er en simpel nedtælling til tidspunktet i øverste script linje.Resten af hjemmesiden er lavet i php bortset fra denne nedtællingsfunktion.
Tidspunktet i den øverste script linje skal gerne erstattes af variablerne fra PHP. Når den er færdig med at tælle ned til den første php variabel, så skal den fortsætte med at tælle ned til den næste variabel. Hvordan laver jeg det?
Jeg har forsøgt at udskifte X i java variablerne med <?php $y; ?>, som er en tæller fra php som jeg kan loope igennem. Således kunne jeg lave mange nedtællinger, men jeg kan ikke få dem til at afløse hinanden, så når den ene er færdig, så skal den næste fortsætte.
Håber denne beskrivelse hjælper lidt?
Avatar billede sukos Juniormester
16. juli 2020 - 16:46 #3
Hmm, lavede dette en gang til en "lotto" hjemmeside.
Med lidt ændringer burde nok virke til dit behov.

function countd(allseconds,page) {

refresh = (!page ? 0 : 1);

var oneM = 60;
var oneH = (60*60);

var Htime = Math.floor(allseconds/oneH);
var Mtime = Math.floor((allseconds-(Htime*oneH))/oneM);
var Stime = Math.floor(allseconds-(Htime*oneH)-(Mtime*oneM));

document.getElementById("timetext").firstChild.nodeValue=(Htime<10?'0'+Htime:Htime)+' h '+(Mtime<10?'0'+Mtime:Mtime)+' m '+(Stime<10?'0'+Stime:Stime)+' s';


    if(allseconds){


        setTimeout("countd("+(allseconds-1)+","+refresh+");",1000);

    }else{

        if(refresh) {
        window.location.reload();
        }

        document.getElementById("timetext").firstChild.nodeValue='Draw is going on!';

    }

}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester