Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

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


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
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 smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
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 smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
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...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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;


--------------------
Zapraszam darmowy erds dla twojego radia
www.erds.pl
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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 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 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 winksmiley.jpg

Ten post edytował zegarek84 26.01.2010, 23:56:15


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

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 Aktualny czas: 20.08.2025 - 06:27