Avatar billede EveryMA Mester
28. maj 2011 - 11:39 Der er 1 kommentar og
1 løsning

Nedtælling: Med 0 foran sekunder

Hej.
Jeg fandt nedenstående script på nettet som tæller ned til et bestemt tidspunkt. Det virker præcis som det skal, men når der f.eks. er 9 timer og 9 minutter og 9 sekunder tilbage, så skriver den bare:

9:9:9
Jeg vil gerne have således:
09:09:09

<script type="text/javascript">

    var CountDown = function(el, time) {
        if(!el.innerHTML) {
            el = document.getElementById(el);
        }   
        this.el = el;
       
        if(typeof time != "object" || !time.getTime) {
            time = new Date(time);
        }
        this.target = time;
    }
   
    CountDown.prototype = {

        getDist : function() {
            var now = new Date();
           
            var dist = now.getTime() - this.target.getTime();
            return Math.abs(dist);
        },


        getCount : function() {
            var dist = this.getDist();

            var second = 1000
            var minute = 60 * second;
            var hour = 60 * minute;
            var day = 24 * hour;
           
            var days = Math.floor(dist / day);
            var hours = Math.floor((dist - (days*day)) / hour);
            var minutes = Math.floor((dist - (days*day+hours*hour)) / minute);
            var seconds = Math.floor((dist - (days*day+hours*hour+minutes*minute)) / second);

            return {
                "days" : days, "hours" : hours, "minutes" : minutes, "seconds" : seconds
            }
        },
       

        start : function() {
            var c = this.getCount()
       
            this.el.innerHTML = c.hours+':'+c.minutes+':'+c.seconds+'';
           
            var fn = this._delegate(this.start,this);
            this.timer = setTimeout(fn,1000);
        },


        stop : function() {
            clearTimeout(this.timer);
        },
       
        // private
        _delegate : function(func,obj) {
            return function() {
                return func.apply(obj,[]);
            }
        }
    }

    window.onload = function() {
        var cd = new CountDown("div_navn", new Date("September 14 2011 11:00:00"));
        cd.start();
       
    }
        </script>
Avatar billede CCodam Nybegynder
28. maj 2011 - 11:58 #1
Der er så vidt jeg ved ikke nogen padding funktion i javascript, men i dette tilfælde kan du benytte dig af nogen simple if sætninger:


var days = Math.floor(dist / day);
var hours = Math.floor((dist - (days*day)) / hour);
var minutes = Math.floor((dist - (days*day+hours*hour)) / minute);
var seconds = Math.floor((dist - (days*day+hours*hour+minutes*minute)) / second);

if (hours < 10) { hours = "0" + hours; }

if (minutes < 10) { minutes = "0" + minutes; }

if (seconds < 10) { seconds = "0" + seconds; }

return {
  "days" : days, "hours" : hours, "minutes" : minutes, "seconds" : seconds
}

Avatar billede EveryMA Mester
28. maj 2011 - 12:08 #2
Takker.
Jeg er ikke skarp til javascript, så jeg kunne ikke selv lave det. Men det var præcis IF sætning jeg forsøgte at lave selv i starten, men det virkede ikke også kom jeg herind :)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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