Automatyczne odświeżanie czasu w JavaScript

0

Mam takowy kod:

JS:

<script>
function OdliczanieTime(){
actulalDate = new Date();
actualHour = actulalDate.getHours();
actualMinute = actulalDate.getMinutes();
actualSecounds= actulalDate.getSecounds();
var czas actualHour+":"+actualMinute+":"+actualSecounds;
document.getElementById("OdliczanieTime"). innerHTML = czas;
}
setInterval("OdliczanieTime()", 1000);
</script>

HTML

<body 
onLoad="OdliczanieTime()">

Jako, że dopiero uczę się JavaScript tradycyjnie nie wiem co jest nie tak. Kod może być trochę nie zrozumiały, bo napisałem go czytając artykuły i posty z sieci. Dlaczego nie wyświetla mi się odświeżanie czasu? Kod wydaje się poprawny. Może ktoś mnie naprowadzić na problem? Nie chcę gotowca, bo tak nic nie zdziałam, proszę jedynie o konkretne i jasne(jak dla nowego w javascript) naprowadzenie na błąd.

0

Tak na pierwszy rzut oka:
var czas actualHour+(...)
Tutaj czegoś brakuje, nie sądzisz?

0
var czas = actualHour+":"+actualMinute+":"+actualSecounds;

Czy o to chodziło?
Takie rozwiązanie jednak nie działa.

0

Co wyświetla konsola JS?

0

Uncaught ReferenceError: OdliczanieTime is not defined

1

uu chlopie sporo tego, po primo przeczytaj jakis kursik o javascript lub staranniej rob te skrypty, a wiec lecac po kolei (moje komenatarze w kodzie)

function OdliczanieTime(){
actulalDate = new Date(); // brak deklaracji zmienniej z uzyciem var => var actulalDate 
actualHour = actulalDate.getHours(); // brak deklaracji zmienniej z uzyciem var
actualMinute = actulalDate.getMinutes(); // brak deklaracji zmienniej z uzyciem var
actualSecounds= actulalDate.getSecounds();  //literowka  // brak deklaracji zmienniej z uzyciem var
var czas actualHour+":"+actualMinute+":"+actualSecounds; // brak znaku przypisania(=)
document.getElementById("OdliczanieTime"). innerHTML = czas; // spacja przed inner
}
setInterval("OdliczanieTime()", 1000); // nie tak sie wywoluje setInterval, poczytaj o tym jeszcze raz

poza tym KONSOLA, KONSOLA I JESZCZE RAZ KONSOLA, ona poinformowalaby cie o tych bledach od razu....

0
dawid4157 napisał(a):

Odwołam się to ostatniego komentarza, bo w tych wyżej rzeczywiście masz rację. Nie rozumiem o co chodzi. Przecież posiada wyrażenie(jeśli tak to mogę nazwać) "OdliczanieTime()" czyli tak jak nazwana została funkcja. setInterval powinno odświeżać tą funkcję stąd właśnie taka sama nazwa. Możesz troszkę sprecyzować o co Ci chodziło?

to twoje "OdliczanieTime()" to string czyli ciag znakow a nie wywolanie funkcji ,a setInterval przyjmuje wywolaniefunckji. wygooglaj jak wywolac setinterval w javascript poprawnie i zrob to :)

0

oprócz wskazanych przed przedmówców błędów, to popełniłeś literówkę w jednej z nazw funkcji wbudowanych, które wywołujesz (ale nie powiem, w której, ponieważ jak było już mówione - odpal sobie Chrome, zobacz w konsoli (Ctrl+Shift+J), wszystko będziesz miał widoczne.

Generalnie z podejściem tu-mi-wisi ( "actual wcale nie znaczy aktualny.", "A co to ma do rzeczy? To tylko nazwa zmiennej chyba, że się mylę. "), nic dziwnego, że ci nic nie działa (bo właśnie przez takie podejście, co za różnica, czy nazwiesz tak a nie inaczej, masz błąd...)

0

Poza tym wszędzie odwołania do actulalDate, zamiast actualDate (literówki w wielu miejscach).

0

Dziękuję wszystkim za porady(mniej i bardziej przydatne) :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1