M. in. setInterval(fn, 1000) niekoniecznie będzie się odpalał co równo sekundę, więc jak na zegar związany jednak z koleją to trochę słabo, bo szybko może nabrać niedokładności.
@rbielawski: wytykasz bledy innym a sam nie widzisz ze niedokladnosc bedzie zawsze wynosila ponizej 1 sekundy? Walnij intervala co 300ms i dokladnosc bedzie ponizej 300ms. Co to wogole za filozofia jest?
@karer: Udowodnij mi, że się mylę, ale po pobieżnym przejrzeniu tego, co tam napisano uważam, że niedokładność będzie się zmieniać z każdym 'obiegiem' setInterval, bo co OKOŁO sekundę będzie dodawana równo sekunda do niby-aktualnego czasu - czyli błąd może się sumować i zwiększać wraz z upływem czasu.
Taki oto kod znalazłem na stronie PKP Intercity, odpowiada za pokazywanie aktualnego czasu.
var czas = new Date(1470489914049);
function zegar()
{
czas = new Date(czas.getTime() + 1000);
godzina = czas.getHours();
if (godzina <= 9) {
godzina = "0" + godzina;
}
minuta = czas.getMinutes();
if (minuta <= 9) {
minuta = "0" + minuta;
}
sekunda = czas.getSeconds();
if (sekunda <= 9) {
sekunda = "0" + sekunda;
}
document.getElementById('clock').innerHTML = godzina + ":" + minuta + ":" + sekunda;
}
zegar();
setInterval("zegar()", 1000);
źródło: comment_x5WUbSiCHvyMadAEci2cDVnOVrkryDA8.jpg
Pobierz@rbielawski: wytykasz bledy innym a sam nie widzisz ze niedokladnosc bedzie zawsze wynosila ponizej 1 sekundy? Walnij intervala co 300ms i dokladnosc bedzie ponizej 300ms. Co to wogole za filozofia jest?
@rbielawski: Odpal sobie konsole, i sam to sobie udowodnij:)