Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js]czas
rychu123
post
Post #1





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


witam, co jest w tym skrypcie źle ze nie odświeża

  1. <script language="javascript" >
  2. function czas() {
  3.  
  4. var nazwy_mies = [ 'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj',
  5. 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik',
  6. 'Listopad', 'Grudzień' ];
  7.  
  8. // Odczytanie bieżącej daty i czasu, i rozbicie ich na składowe
  9. var data = new Date();
  10. var rok = data.getFullYear();
  11. var mies = data.getMonth();
  12. var dzien = data.getDate();
  13. var godz = data.getHours();
  14. var min = data.getMinutes();
  15. var sec = data.getSeconds();
  16.  
  17. // Dodanie zera na początku minut i sekund jeżeli trzeba
  18. if (min < 10)
  19. min = '0' + min;
  20. if (sec < 10)
  21. sec = '0' + sec;
  22.  
  23. // Utworzenie odpowiednio sformatowanej daty i czasu
  24. var data_i_czas = dzien + ' ' + nazwy_mies[mies] + ' ' + rok
  25. + ', ' + godz + ':' + min + ':' + sec;
  26.  
  27.  
  28. return data_i_czas;
  29.  
  30. }
  31. setTimeout('czas()' ,500);
  32. document.write(czas());
  33.  
  34.  
  35. </script>


Ten post edytował rychu123 26.01.2010, 22:04:55
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




na pierwszy rzut oka rzuca sie to:
setTimeout(czas() ,500);
powinno byc
setTimeout('czas()' ,500);

Drugiego rzutu oka juz nie robilem (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
rychu123
post
Post #3





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


nie działa dalej proszę o pomoc
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mowiac nie odswieza, masz na mysli ze pierwszy czas sie wyswietla a potem juz nie? No bo tylko raz wywolujesz te funkcje (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
piotrooo89
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a mam taki gotowy zegarek, zmień na swoje i będzie hulać:

  1. <form name="info" action="#">
  2. <input type="text" id="zegar" value="" size="8" class="zegar" readonly="readonly">
  3.  
  4. </form>
  5. function zegarek()
  6. {
  7. var zegar = new Date();
  8.  
  9. var czas;
  10.  
  11. var sekunda, minuta, godzina;
  12. sekunda = zegar.getSeconds();
  13. minuta = zegar.getMinutes();
  14. godzina = zegar.getHours();
  15.  
  16.  
  17. czas = godzina +":"+ minuta +":"+ sekunda;
  18.  
  19. window.document.forms.info.zegar.value=czas;
  20. setTimeout("zegarek();",1000);
  21. }
  22.  
  23. zegarek();
Go to the top of the page
+Quote Post
rychu123
post
Post #6





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


chce żeby zegar cały czas liczył czas
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no to ci napisales: odpalasz wyswietlanie czasu tylko raz. naprawdę pisze nie zrozumiale?

ALbo uzyj setInterval() albo setTimeout() wywoluj tez w funkcji.
Go to the top of the page
+Quote Post
rychu123
post
Post #8





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


Cytat(nospor @ 26.01.2010, 22:13:43 ) *
no to ci napisales: odpalasz wyswietlanie czasu tylko raz. naprawdę pisze nie zrozumiale?

ALbo uzyj setInterval() albo setTimeout() wywoluj tez w funkcji.


ale to nie działa
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




wszystkim dziala,tylko nie tobie. Na dodatek nie pokazales jak zastosowales moje rady wiec nadal mozemy zgadywac co masz źle...

Kod ktory podał piotrooo89 zawiera wlasciwe uzycie setTimeout() i jakos jemu dziala.
Go to the top of the page
+Quote Post
rychu123
post
Post #10





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


  1. <script language="javascript" >
  2. function czas() {
  3.  
  4. var nazwy_mies = [ 'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj',
  5. 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik',
  6. 'Listopad', 'Grudzień' ];
  7.  
  8. // Odczytanie bieżącej daty i czasu, i rozbicie ich na składowe
  9. var data = new Date();
  10. var rok = data.getFullYear();
  11. var mies = data.getMonth();
  12. var dzien = data.getDate();
  13. var godz = data.getHours();
  14. var min = data.getMinutes();
  15. var sec = data.getSeconds();
  16.  
  17. // Dodanie zera na początku minut i sekund jeżeli trzeba
  18. if (min < 10)
  19. min = '0' + min;
  20. if (sec < 10)
  21. sec = '0' + sec;
  22.  
  23. // Utworzenie odpowiednio sformatowanej daty i czasu
  24. var data_i_czas = dzien + ' ' + nazwy_mies[mies] + ' ' + rok
  25. + ', ' + godz + ':' + min + ':' + sec;
  26.  
  27.  
  28. return data_i_czas;
  29. setTimeout('czas();' ,500);
  30. }
  31.  
  32. document.write(czas());
  33.  
  34.  
  35. </script>


to powiedz mi co jest źle
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kod
return data_i_czas;
setTimeout('czas();' ,500);

W kazdym jezyku programowania to co jest po RETURN nie wykonuje sie. Czy juz wiesz co jest źle?
A na przyszlosc nie kaz sie prosic o każdą rzecz tylko sam od razu podaj jak najwiecej informacji...
Go to the top of the page
+Quote Post
rychu123
post
Post #12





Grupa: Zarejestrowani
Postów: 194
Pomógł: 1
Dołączył: 18.09.2008

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


czyli ma być tak ? To nie działa
  1. setTimeout('czas();' ,500);
  2. return data_i_czas;
Go to the top of the page
+Quote Post
nospor
post
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ok, to kolejna podpowiedź: w swojej funkcji nic z tym czasem nie robisz. Wyliczasz go i tyle.

Przykladowo kod piotrooo89 coś z tym czasem robi, Twoj nic.
Go to the top of the page
+Quote Post
zegarek84
post
Post #14





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(rychu123 @ 26.01.2010, 22:37:03 ) *
czyli ma być tak ? To nie działa
  1. setTimeout('czas();' ,500);
  2. return data_i_czas;

jeśli już używasz setTimeout to nie w takiej konstrukcji - raz, że jest ciutkę wolniejsza a dwa to robisz coś w stylu eval... przekaż funkcję jako pierwszy parametr czyli setTimeout(czas ,500); - poza tym, skoro czas wyświetlasz z dokładnością do 1s to po co liczysz to 2 razy?? - wystarczy setTimeout(czas ,1000);... a nawet jeśli chcesz przekazać parametry do tej funkcji to "normalnie" podaje się je jako kolejne argumenty funkcji setTimeout - tylko w ie tak się nie da - ale wszystko można obejść - wystarczy oczytać o zasięgu zmiennych - eval is evil (IMG:style_emoticons/default/winksmiley.jpg)

skoro uparłeś się na return to to powinno być jeszcze ciutkę inaczej - gdyż funkcję powinieneś brać jako argument - ale ogólnie mi się nie chciało za dużo pisać - przerobiłem Twój skrypt deczko i usunąłem też return... - ogólnie na multum sposobów to można zrobić...

a i jeśli masz konwersję do stringu to szybsze jest .concat do stringu oraz połączenie tablicy przez .join() od znaku +:
  1. </HEAD>
  2. <div id='zegar'></div>
  3.  
  4. var nazwy_mies = [ 'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj',
  5. 'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik',
  6. 'Listopad', 'Grudzień' ],
  7. $timerID = null , $pole=null;;
  8. function czas() {
  9. // Odczytanie bieżącej daty i czasu, i rozbicie ich na składowe
  10. var data = new Date(),
  11. rok = data.getFullYear(),
  12. mies = data.getMonth(),
  13. dzien = data.getDate(),
  14. godz = data.getHours(),
  15. min = data.getMinutes(),
  16. sec = data.getSeconds(),
  17. data_i_czas=null;
  18.  
  19. // Dodanie zera na początku minut i sekund jeżeli trzeba
  20. if (min < 10)
  21. min = '0'.concat(min);
  22. if (sec < 10)
  23. sec = '0'.concat(sec);
  24.  
  25. // Utworzenie odpowiednio sformatowanej daty i czasu
  26. data_i_czas = [dzien, ' ', nazwy_mies[mies], ' ', rok,
  27. ', ', godz, ':', min, ':', sec].join('');
  28. $pole.innerHTML = data_i_czas;
  29. $timerID=setTimeout(czas ,1000);
  30. }
  31.  
  32. (function(){
  33. $pole=document.getElementById('zegar');
  34. czas();
  35. })()
  36. </BODY>
  37. </HTML>

Cytat(rychu123 @ 26.01.2010, 22:23:44 ) *
  1. <script language="javascript" >
  2. function czas() {
  3. ....
  4. return data_i_czas;
  5. setTimeout('czas();' ,500);
  6. }
  7. document.write(czas());
  8. </script>

to powiedz mi co jest źle

przede wszystkim używając document.write wyświetliłeś funkcję pierwszy raz... potem popatrz na to co zostawiłem jeszcze w pętli... hmmm... pomijając jeszcze kilka faktów to drugi raz funkcji nie wykonasz gdyż funkcja przestaje działać po zwróceniu wartości w return (IMG:style_emoticons/default/winksmiley.jpg) ... hmmm... nawet jakbyś zamienił kolejność tych ostatnich linijek w funkcji to o tyle poszedł byś do przodu, że funkcja ciągle by się wykonywała, jednak nigdzie nie wyświetlała gdyż... hmm... do niczego nie przypisałeś wartości tej funkcji (IMG:style_emoticons/default/winksmiley.jpg)

Ten post edytował zegarek84 26.01.2010, 23:56:15
Go to the top of the page
+Quote Post

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: 23.08.2025 - 07:49