Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Skrytp odliczający czas, Prośba o modyfikację
PROGer
post 17.09.2015, 13:10:44
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


Witam,
mam taki oto skrypt odliczajacy czas

  1. <span id="odliczanie"></span>
  2. <script type="text/javascript">
  3. k=+new Date();
  4. (function(){sec=(k-new Date())/1000;
  5. document.getElementById('odliczanie').innerHTML=~~(sec/60)%60+' minut '+~~sec%60+' sekund';
  6. setTimeout(arguments.callee,1000)})()
  7. </script>


Problem w tym że odlicza go w tył od 0 minut 00 sekund
Chciałbym natomiast aby zegar ustawiony był poczatkowo na czas 15 minut.
Z JavaScript nie mam dużo do czynienia stąd też moja prośba o pomoc.

Ten post edytował PROGer 17.09.2015, 13:19:20
Go to the top of the page
+Quote Post
mar1aczi
post 17.09.2015, 13:55:23
Post #2





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Linię 3 zastap tymi dwoma
  1. var k=new Date();
  2. k.setMinutes(k.getMinutes() + 15);


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
PROGer
post 17.09.2015, 14:18:27
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


Działa w 99% bardzo dziekuję.
Mam taką sytuację, że jak odświeżę stronę to licznik rozpoczyna odliczanie do 15 minut 00 sekund a po sekundzie przeskakuje od razu na 14 minut 58 sekund. Dalej idzie już ładnie w dół ... jak to poprawić?
Go to the top of the page
+Quote Post
mar1aczi
post 17.09.2015, 14:26:11
Post #4





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Możliwe, że strona ładuje Ci się dłużej. Spróbuj dać ten javascript na sam dół przed samym </body>.


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
PROGer
post 17.09.2015, 14:31:26
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


Nie pomogło
No nic ... najwyżej tak to już zostawię
Dzięki jeszcze raz!
Go to the top of the page
+Quote Post
Randallmaster
post 17.09.2015, 14:59:47
Post #6





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


Temat: JavaScriptOdliczanie czasu

Może pomoże smile.gif
Go to the top of the page
+Quote Post
PROGer
post 18.09.2015, 09:03:01
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


Jeszcze jedna mała rzecz.
Zegar startując na stronie zaczyna się od 15:0
Później lecąc w dół mamy
14:11
14:10
14:9
14:8

Można ustawić format aby zapis wyglądał tak?
14:11
14:10
14:09
14:08
?

Identycznie z minutami

Ten post edytował PROGer 18.09.2015, 11:12:53
Go to the top of the page
+Quote Post
mar1aczi
post 18.09.2015, 11:36:28
Post #8





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Linię 5 Twojego kodu zastąp
Kod
var pre_sec = (sec%60 < 10) ? '0' :'';
document.getElementById('odliczanie').innerHTML=~~(sec/60)%60+' minut '+ pre_sec + ~~sec%60 +' sekund';

Analogicznie zrobisz to dla minut.


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
PROGer
post 18.09.2015, 11:42:18
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


Ok działa z tym że przy starcie mam 015:00 po czym po upływie sekundy już mam poprawnie 14:59
Go to the top of the page
+Quote Post
mar1aczi
post 18.09.2015, 11:45:30
Post #10





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Pokaż to co masz, poprawimy smile.gif


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
PROGer
post 18.09.2015, 11:48:18
Post #11





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


  1. <script type="text/javascript">
  2. var k=new Date();
  3. k.setMinutes(k.getMinutes() + 15);
  4. (function(){
  5. sec=(k-new Date())/1000;
  6. var pre_min = (sec%60 < 10) ? '0' :'';
  7. var pre_sec = (sec%60 < 10) ? '0' :'';
  8. document.getElementById('odliczanie').innerHTML='Czas do końca sesji: '+ pre_min +~~(sec/60)%60+' : '+ pre_sec + ~~sec%60+' ';
  9. setTimeout(arguments.callee,1000)
  10. })()
  11. </script>
Go to the top of the page
+Quote Post
mar1aczi
post 18.09.2015, 11:52:56
Post #12





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Minuty do wyświetlenia są obliczane jako "(sec/60)%60" a Ty zrobiłeś... "sec%60" i stąd błąd.
Twoje pre_min winno wygladać tak:
Kod
var pre_min = ((sec/60)%60 < 10) ? '0' :'';


Podpowiadałem analogicznie, nie identycznie wink.gif

Tutaj takie ładnijesze rozwiązanie wink.gif
Kod

    <script type="text/javascript">
    Number.prototype.pad = function(size) {
    var s = String(this);
        while (s.length < (size || 2)) {s = "0" + s;}
    return s;
    };
    
    var k=new Date();
    k.setMinutes(k.getMinutes() + 15);
    (function(){sec=(k-new Date())/1000;
    document.getElementById('odliczanie').innerHTML=(~~(sec/60)%60).pad()+' minut '+ (~~sec%60).pad() +' sekund';
    setTimeout(arguments.callee,1000)})()
    </script>


Ten post edytował mar1aczi 18.09.2015, 11:54:03


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
PROGer
post 18.09.2015, 11:55:18
Post #13





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 30.04.2015

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


Bardzo, bardzo dziękuję za pomoc smile.gif
Go to the top of the page
+Quote Post
Randallmaster
post 18.09.2015, 12:11:17
Post #14





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


A tak apropo udoskonalenia twojego kodu smile.gif Włącz stronę gdzie będzie ci odliczało, i jak rozpocznie odliczać przejdź na inną zakładkę na 10 sec i powróć smile.gif I wtedy zobacz czy zgadza ci się czas odliczania.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 30.05.2024 - 12:43