Automatyczne odświeżanie czasu w JavaScript

Automatyczne odświeżanie czasu w JavaScript
dawid4157
  • Rejestracja:prawie 13 lat
  • Ostatnio:6 miesięcy
  • Postów:220
0

Mam takowy kod:

JS:

Kopiuj
<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

Kopiuj
<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.

edytowany 1x, ostatnio: dawid4157
Patryk27
Grammar nazi: actual wcale nie znaczy aktualny.
dawid4157
A co to ma do rzeczy? To tylko nazwa zmiennej chyba, że się mylę.
Patryk27
Nic nie ma, ot - grammar nazi.
dawid4157
oj tam, oj tam, czepiasz się :). Wracając do tematu - wiesz co jest nie tak?
Sarrus
Piszesz po oungielsku. Po angielsku sekundy pisze się 'seconds'. Ja używam google translatora do sprawdzania pisowni. Tobie też polecam korzystać z dobrodziejstw internetów
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

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


edytowany 1x, ostatnio: Patryk27
flowCRANE
Czepiasz się głupiej składni... :P
JK
Nie znam się na js, ale czy czasem przed każdą zmienną nie powinno być 'var' ?
flowCRANE
A czy przypadkiem var nie oznacza deklaracji zmiennej?
szalonyfacet
powinny byc deklaracje zmiennych, ogolnie kazda linijka czegos nie ma
JK
@furious programming właśnie chodziło mi o deklarację. Dzięki :)
dawid4157
  • Rejestracja:prawie 13 lat
  • Ostatnio:6 miesięcy
  • Postów:220
0
Kopiuj
var czas = actualHour+":"+actualMinute+":"+actualSecounds;

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

Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Co wyświetla konsola JS?


dawid4157
  • Rejestracja:prawie 13 lat
  • Ostatnio:6 miesięcy
  • Postów:220
0

Uncaught ReferenceError: OdliczanieTime is not defined

szalonyfacet
  • Rejestracja:ponad 12 lat
  • Ostatnio:10 miesięcy
  • Lokalizacja:Dąbrowa Górnicza
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)

Kopiuj
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....

edytowany 2x, ostatnio: szalonyfacet
dawid4157
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?
flowCRANE
@szalonyfacet - dokładnie; @dawid4157 - wszelkie odpowiedzi na temat udzielaj w postach, komentarze zostaw do off-topu;
szalonyfacet
  • Rejestracja:ponad 12 lat
  • Ostatnio:10 miesięcy
  • Lokalizacja:Dąbrowa Górnicza
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 :)

edytowany 1x, ostatnio: szalonyfacet
dzek69
stringa tez przyjmie. ohydne, ale przyjmie i zrobi eval
LukeJL
  • Rejestracja:około 11 lat
  • Ostatnio:3 minuty
  • Postów:8423
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...)


edytowany 1x, ostatnio: LukeJL
flowCRANE
Moderator Delphi/Pascal
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Tuchów
  • Postów:12171
0

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


Pracuję nad własną, arcade'ową, docelowo komercyjną grą z gatunku action/adventure w stylu retro (pixel art), programując silnik i powłokę gry od zupełnych podstaw, przy użyciu Free Pascala i SDL3. Więcej informacji znajdziesz na moim mikroblogu.
szalonyfacet
8 linijek kodu, a patrz ilu ludzi chetnych do pomocy :D:D:D
flowCRANE
Raczej - "8 linijek kodu, a patrz ilu ludzi znalazło błędy" ;P
dawid4157
  • Rejestracja:prawie 13 lat
  • Ostatnio:6 miesięcy
  • Postów:220
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.