Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Odliczanie
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

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


Witam pisze skrypt który po wprowadzeniu "sekund" odlicza czas do 0, bynajmniej takie ma mieć zadanie. Napisałem już sam skrypt zamieniając sekundy na dni/godiny/minut/sekundy jednak teraz ugrzęzłem w martwym punkcje ponieważ nie wiem jak zrobić samo odliczanie. Żeby odliczał w dół aż do 0, a po dojściu wartości do 0d 0h 0m 0s wykonał inna funkcje w JS. Proszę o pomoc oraz o porady czy dotychczasowy skrypt "wygląda dobrze"

  1. <script type="text/javascript">
  2. /* <![CDATA[ */
  3. function sekudny(sekudny, id){
  4. dni = Math.floor(sekudny/86400);
  5. godzin = Math.floor((sekudny - dni*86400)/3600);
  6. minut = Math.floor((sekudny - dni*86400 - godzin*3600)/60);
  7. sekund = Math.floor(sekudny - dni*86400 - godzin*3600 - minut*60);
  8. if(dni > 0){
  9. document.getElementById(id).innerHTML = dni+"d, "+godzin+"h, "+minut+"m, "+sekund+"s";
  10. }else if((godzin > 0) && (dni == 0)){
  11. document.getElementById(id).innerHTML = godzin+"h, "+minut+"m, "+sekund+"s";
  12. }else if((godzin == 0) && (dni == 0) && (minut > 0)){
  13. document.getElementById(id).innerHTML = minut+"m, "+sekund+"s";
  14. }else if((godzin == 0) && (dni == 0) && (minut == 0) && (sek > 0)) {
  15. document.getElementById(id).innerHTML = sekund+"s";
  16. }
  17. }
  18. setTimeout("getDown(172800, 'time')", 1000);
  19. /* ]]> */</script>
  20.  
  21. <div id="time"></div>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Robiłem niedawno coś podobnego, u mnie to działało w taki sposób:

Ilość czasu "do odliczenia" była tworzona w PHP na takiej zasadzie, że od czasu, w którym miało się zakończyć odliczenie odejmowałem obecny czas (odejmowanie przy pomocy funkcji strtotime()). Następnie stworzyłem sobie funkcję w PHP, która zamieniała ilość sekund (tamto odejmowanie zwracało ilość pozostałych sekund) na "ludzki wzór", np: 12:31:14 (pozostało 12 godz, 31 min i 14 sek).
Ten czas był wyświetlany na stronie w jakimś DIVie o konkretnym ID. W zdarzeniu onload wykonywałem funkcję JS, która działała na tej zasadzie:

- pobierała obecny string z czasem - 12:31:14
- zamieniała ten czas na sekundy (nie znalazłem do tego funkcji w js więc napisałem własną)
- odejmowała od tego czasu 1 sekundę
- zamieniała nową ilość sekund na czas (w moim przykłądzie to bedzi 12:31:13)(także własna funkcja, gdyż nie znalazłem takiej w JS)
- podmieniała w DIVie stary czas na nowy
- na końcu za pomocą SetTimeout() funkcja była wykonywana co 1000ms, czyli 1 sek

Dało to taki wynik, że co sekundę ilość pozostałego czasu szedł w dół ^^
Musisz jeszcze pamiętać, że jeśli osiągnie 00:00:00, żeby przerwać czymś skrypt - np. ClearTimeout()

To tyle, mam nadzieję, że pomoże ^^

Ten post edytował Skie 29.07.2009, 19:42:23
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: 17.10.2025 - 04:20