Javascript миллисекунд не преобразуются / отображаются неправильно - PullRequest
0 голосов
/ 08 января 2020

Я очень плохо знаком с JS, и я поставил себе цель создать простой таймер обратного отсчета. Это основано на работе, и когда выходить из перерывов, обед и т. Д.

Проблема, с которой я столкнулся, состоит в том, что 15 минут (15000 мс) в моем сценарии равны 9 минутам . Я не могу понять, почему или где происходит это преобразование.

Я извиняюсь за формат кода, я новичок и только начал JS на прошлой неделе.

    function timer(number){

  //conversion from seconds to milliseconds
  number *= 1000;

  //when to come back from break
  let countDownDate = new Date();
  countDownDate.setSeconds(countDownDate.getSeconds() + number);

  setInterval(updateTime, 1000);

    function updateTime() {

//calculate the 'now' time and the 'target' time and divide it 
let now = new Date().getTime();
let distance = countDownDate - now;

let days = Math.floor(distance / (1000 * 60 * 60 * 24));
let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
let seconds = Math.floor((distance % (1000 * 60)) / 1000);

 if (distance < 0) {
     minutes += 1;}

 //display data on P tag
 document.getElementsByClassName('countdown')[0].innerHTML = minutes + "m " + seconds + "s ";
 document.getElementsByClassName('return-time')[0].innerHTML = countDownDate.getHours() + ":" + countDownDate.getMinutes() + ":" + countDownDate.getSeconds();

}};

//buttons on nav bar add time to timer
const keys = document.querySelector('nav');
keys.addEventListener('click', (event) => {
  const { target } = event;
  if (!target.matches('li, a, input')) {
    return;
  }

  if (target.classList.contains('breaks')) {
    timer(15);
    return;
  }

  if (target.classList.contains('lunch')) {
    timer(30);
    return;
  }

  if (target.classList.contains('personal')) {
    timer(10);
    return;
  }

  console.log('null', target.value);
});
...