Написать часы на js
Нужно написать часы в формате hours:minutes:seconds через js и добавить их в spanы в html . Перерисовка не реже чем раз в секунду. ДАННЫЕ НЕ ПЕРЕРИСОВЫВАТЬ , ЕСЛИ ОНИ НЕ ПОМЕНЯЛИСЬ. То есть, если меняются только секунды, то перерисовываем только span с секундами,а spanы с часами и минутами не трогаем.
|
dda_add,
где ваши попытки? |
есть обычные часы, а по поводу перерисовки пока что не могу ничего толкового придумать
function time(){ var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); function setZero(time) { return (time < 10) ? '0' + time : time; } document.getElementById('hours').innerHTML = hours; document.getElementById('minutes').innerHTML = setZero(minutes); document.getElementById('seconds').innerHTML = setZero(seconds); } time(); setInterval(`time()`,1000); |
dda_add,
а проверить что есть в innerHTML ? |
dda_add,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <span id="hours"></span> <span id="minutes"></span> <span id="seconds"></span> <script> function up(id, value) { var el = document.getElementById(id); if(el.innerHTML != value) el.innerHTML = value } function setZero(time) { return (time < 10) ? '0' + time : time; } function time(){ var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); up('hours', hours); up('minutes', setZero(minutes)); up('seconds', setZero(seconds)); requestAnimationFrame(time); } time(); </script> </body> </html> |
<div id="time"> <span></span>:<span></span>:<span></span> </div> <script> var sp = document.querySelectorAll('#time span'); (t=()=>{ new Date().toString().slice(15,24).split(':').forEach((d,i)=>{ if(sp[i].textContent != d) sp[i].textContent = d; }); setTimeout(t,1000); })(); </script> Для разнообразия |
Часовой пояс GMT +3, время: 01:29. |