Как узнать процент прошедшего времени? Отображаю посетителю количество % прошедшего времени в виде полосы загрузки. Есть:$NOW = unixtime, текущее время$START = unixtime, момент, когда началось действие$INTERVAL = интервал, 600 (10 мин.)$TOTAL = всего процентов должно быть на шкалеДля вычисления прогресса пишу:$progress = $TOTAL - ($TOTAL- ($NOW - $START) / $INTERVAL * $TOTAL); /*echo 'Осталось: ' . date('i мин. s сек.', $START + $INTERVAL - $NOW);*/ Не допустил ли я ошибку при вычислении % прогресса?
Да, у вас ошибка в формуле вычисления прогресса. Правильная формула будет выглядеть следующим образом:
$progress = (($NOW - $START) / $INTERVAL) * $TOTAL;
Эта формула вычисляет процент прогресса на основе временного интервала, прошедшего с момента начала действия.
Также вы можете добавить проверку на максимальное значение 100% для случая, если время превысит заданный интервал:
if ($progress > $TOTAL) {
$progress = $TOTAL;
}
Теперь вы сможете корректно отображать процент прогресса на вашей полосе загрузки.