Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Countdown
Snoopy
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 0
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


Potrzebuję prosty skrypt odliczający czas od jakiejś wartości do zera.

powinien wyglądać tak:
-przez jakis skrypt php wysyłam wartość w sekundach do skryptu JS
-w js, sekundy są zliczane na minuty, godziny - dni i wyższe wartości są niepotrzebne, moze sie przytrafić ze bedzie np. 115 godzin
-nastepnie co sekundę licznik powinien być odswierzany i pomniejszany o 1 sek
-gdy dojdzie do zera powinien pojawic się takiś tekst zamiast licznika albo jakieś zdarzenie (obstaję przy tekscie)

I tu prośba do forumowiczów. Nie znam się na JS więc chciałbym aby ktoś napisał taki banalny kodzik. Byłbym wdzięczy zwłaszcza że wszystkie countdowny na necie są albo za bardzo rozbudowane, albo trudne do rozgryzienia. A mi chodzi o takie proste liczydło.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
revyag
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Kod
<script type="text/javascript">

var IdNo = 0;

function time (hours,mins,secs,span) {
    
    this.id = "time" + IdNo++;
    window[this.id] = this;
    
    this.hours = hours;
    this.mins = mins;
    this.secs = secs;
    this.span = span;
    
    this.show = show;
    
}

function show() {
    
    if( this.secs > 0 ) {
        this.secs--;
    } else if( this.secs == 0 && this.mins > 0 ) {
        this.mins--;
        this.secs=59;
    } else if ( this.secs == 0 && this.mins == 0 && this.hours > 0 ) {
        this.hours--;
        this.mins=59;
        this.secs=59;
    }
    if( this.hours == 0 && this.mins == 0 && this.secs == 0 ) {
        alert("Koniec czasu");
    } else {
        
        document.getElementById( this.span ).innerHTML = "Time left: " +
        (( this.hours < 10 ) ? ( "0" + this.hours ) : this.hours) + ":" +
        (( this.mins < 10 ) ? ( "0" + this.mins ) : this.mins) + ":" +
        (( this.secs < 10 ) ? ( "0" + this.secs ) : this.secs);
        
    }
    setTimeout("window."+this.id+".show()",1000);
}


function load() {
    
    var timer = new time(20,0,0,"tm");
    var timer1 = new time(14,35,45,"tm1");
    var timer2 = new time(0,10,2,"tm2");
    
    timer.show();
    timer1.show();
    timer2.show();
}
</script>

  1. <body onload="load()">
  2. <span id="tm"></span><br /><br />
  3. <span id="tm1"></span><br /><br />
  4. <span id="tm2"></span>
  5. </body>

Nie wiedziałem dlaczego timer nie zmniejsza mi się więc pogoglowałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pomysł z zachowaniem referencji do obiektu jest stąd:
http://www.codingforums.com/showthread.php?t=242
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.11.2025 - 04:43