• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

setTimeout,problem,javascript,js,html

Fiszki IT
Fiszki IT
0 głosów
92 wizyt
pytanie zadane 19 marca 2020 w JavaScript przez kubaa322 Użytkownik (710 p.)

Witam, nie działa mi funkcja setTimeout. Nie odświeża czasu. Kod:

let dzien = "nieznany";
let data = new Date();
switch(data.getDay())
{
case 0 : dzien = "niedziela"; break ;
case 1 : dzien = "poniedzialek"; break ;
case 2 : dzien = "wtorek"; break ;
case 3 : dzien = "sroda"; break ;
case 4 : dzien = "czwartek"; break ;
case 5 : dzien = "piatek"; break ;
case 6 : dzien = "sobota"; break ;
}
           document.getElementById('dzien').innerHTML = "Dziś jest " + dzien + "<br>";
		   
		  

dzien = data.getDate();
let miesiac = data.getMonth() + 1;
let rok = data.getFullYear();
let str = ((dzien<10) ? "0" : "") + dzien;
str += ((miesiac<10) ? "-0" : "-")+ miesiac;
str += "-" + rok;

           
           document.getElementById('data').innerHTML = "" + str +"<br>";
function elo(){
let godziny = data.getHours();
let minuty = data.getMinutes();
let sekundy = data.getSeconds();
let czas = godziny;
czas += ((minuty<10) ? ":0" : ":")+minuty;
czas += ((sekundy<10) ? ":0" : ":")+sekundy;
         
           document.getElementById('zegar').innerHTML = czas + '<br>';
		   

setTimeout(elo, 1000);
}elo();

teraz html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Zadanie</title>
    <link rel = 'stylesheet' href = 'style.css'>
</head>
<body onload = 'elo()'>   
 <div class = 'daciwo'>
    <span id = 'zegar'>
    </span>
    <span id = 'dzien'>
    </span>
    <span id = 'data'>
    </span>
    </div>
    <script src = 'app.js'></script>
</body>
</html>

 

1 odpowiedź

0 głosów
odpowiedź 19 marca 2020 przez DawidK Nałogowiec (37,590 p.)

Zmienna data jest tworzona tylko raz (w drugiej linijce) i zawiera aktualną date w momencie utworzenia - tzn. nie aktualizuje się "sama z siebie". Dzień rok i miesiąc również Ci się nie zmieni. Możesz utworzyć tą zmienną wewnątrz funkcji.

function elo(){
    let data = new Date();
...
...
...

 Obecnie licznik odlicza co 2s. Odliczanie możesz ustawić za pomocą.

setInterval(elo, 1000);

 

komentarz 19 marca 2020 przez kubaa322 Użytkownik (710 p.)
dzieki wielkie, taka mala glupota a wszystko przez nia :)

Podobne pytania

0 głosów
1 odpowiedź 231 wizyt
0 głosów
1 odpowiedź 261 wizyt
0 głosów
2 odpowiedzi 68 wizyt
pytanie zadane 1 czerwca 2020 w JavaScript przez michal3254 Nowicjusz (140 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

84,798 zapytań

133,600 odpowiedzi

296,074 komentarzy

56,045 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...