Как узнать текущее значение ползунка прогресбара между двух дат в процентах?
Возникла необходимость в реализации анимации прогрессбара. Нужно узнать, до какого уровня двигать ползунок.
Входные динамические данные, которые отдает сервер это:
const tournamentStart = "2021-05-09T15:04:23.000Z"; // нач турнира
const tournamentEnd = "2021-06-11T19:12:23.000Z"; //конец турнира
let currentTimeMilisec = new Date().getTime(); /// Текущее время в мс которое считаем от 1970 но момент посещения страницы
let tournamentStartMilisec = new Date(tournamentStart).getTime(); // Дата начала турнира в мс от 1970
let tournamentEndMilisec = new Date(tournamentEnd).getTime(); // Дата окончания турнира в мс от 1970
let timeToFinsh = tournamentStartMilisec + tournamentEndMilisec - currentTimeMilisec; /// время которое от сего момента до конца турнира
let procForRank = ((currentTimeMilisec * 100) / timeToFinsh).toFixed(4); /// Формула по которой я считаю это процентное значение нахождения позиции ползунка
console.log("procForRank = ", procForRank);
Сложность и непонимание в том, что расстояние между тем временем, что прошло с 1 января 1970 года, это очень большое время по сравнению с длительностью турнира и у меня этот procForRank (по моей формуле расчета) всегда находится в приделах 98~99%.
Подскажите, как написать правильную формулу для определения procForRank?
Ответы (1 шт):
Автор решения: nörbörnën
→ Ссылка
const tournamentStart = "2021-05-09T15:04:23.000Z";
const tournamentEnd = "2021-06-11T19:12:23.000Z";
const q100 = Date.parse(tournamentEnd) - Date.parse(tournamentStart);
const qNow = Date.now() - Date.parse(tournamentStart);
console.log(`${100 * qNow / q100}%`);
