подскажите, как СДЕЛАТЬ ЧАСЫ С ПРОГРЕСС-БАРОМ на джаваскрипте, то есть 23:59:59 = 100% и 00:00:00 = 0% (p.s. время берётся с устройства пользователя)

Я нуль в js пока что, заранее спасибо за помощь


Ответы (2 шт):

Автор решения: Denis640Kb

    var date = new Date(); // Получаем текущую дату и время
    var hours = date.getHours(); // Получаем часы
    var mins = date.getMinutes(); // Получаем минуты
    var seconds = date.getSeconds() // Получаем секунды

    var InSeconds = (hours * 3600) + (mins * 60) + seconds; // Переводим часы и минуты в секунды
    var n = Math.floor((InSeconds * 100) / 86400) + '%'; // В дне 86400 секунд. Высчитываем процент текущего времени и добавляем вконце символ %
    
    alert(n); // Собственно показываем значение

→ Ссылка
Автор решения: Alexander Lonberg

function progress() {
  // начало дня
  let startTime
  const setStart = () => (startTime = new Date().setHours(0, 0, 0, 0))
  setStart()
  // ... конец = startTime + 24 * 60 * 60 * 1000
  const inputRange = 24 * 60 * 60 * 1000
  const p = () => 100 / (inputRange / (Date.now() - startTime))
  
  return () => {
    let t = p()
    if (t > 100) {
      setStart()
      t = p()
    }
    console.log(t)
  }
}

setInterval(progress(), 1000)

→ Ссылка