Cytat(rychu123 @ 26.01.2010, 22:37:03 )

czyli ma być tak ? To nie działa
setTimeout('czas();' ,500);
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

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 +:
var nazwy_mies = [ 'Styczeń', 'Luty', 'Marzec', 'Kwiecień', 'Maj',
'Czerwiec', 'Lipiec', 'Sierpień', 'Wrzesień', 'Październik',
'Listopad', 'Grudzień' ],
$timerID = null , $pole=null;;
function czas() {
// Odczytanie bieżącej daty i czasu, i rozbicie ich na składowe
var data = new Date(),
rok = data.getFullYear(),
mies = data.getMonth(),
dzien = data.getDate(),
godz = data.getHours(),
min = data.getMinutes(),
sec = data.getSeconds(),
data_i_czas=null;
// Dodanie zera na początku minut i sekund jeżeli trzeba
if (min < 10)
min = '0'.concat(min);
if (sec < 10)
sec = '0'.concat(sec);
// Utworzenie odpowiednio sformatowanej daty i czasu
data_i_czas = [dzien, ' ', nazwy_mies[mies], ' ', rok,
', ', godz, ':', min, ':', sec].join('');
$pole.innerHTML = data_i_czas;
$timerID=setTimeout(czas ,1000);
}
(function(){
$pole=document.getElementById('zegar');
czas();
})()
Cytat(rychu123 @ 26.01.2010, 22:23:44 )

<script language="javascript" >
function czas() {
....
return data_i_czas;
setTimeout('czas();' ,500);
}
document.write(czas());
</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

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