Я очень плохо знаком с 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);
});