<?php
function convertPercentageToTime($percentage, $duration) {
$totalMilliseconds = $duration * 1000; // переводим длительность видео в миллисекунды
$milliseconds = round($totalMilliseconds * ($percentage / 100)); // получаем количество миллисекунд по процентам
$seconds = floor($milliseconds / 1000); // получаем количество секунд
$milliseconds = $milliseconds % 1000; // получаем остаток от деления на 1000 - это миллисекунды
$minutes = floor($seconds / 60); // получаем количество минут
$seconds = $seconds % 60; // получаем остаток от деления на 60 - это секунды
$hours = floor($minutes / 60); // получаем количество часов
$minutes = $minutes % 60; // получаем остаток от деления на 60 - это минуты
// форматируем результат в строку
$result = str_pad($hours, 2, "0", STR_PAD_LEFT) . ":" . str_pad($minutes, 2, "0", STR_PAD_LEFT) . ":" . str_pad($seconds, 2, "0", STR_PAD_LEFT) . ":" . str_pad($milliseconds, 3, "0", STR_PAD_LEFT);
return $result;
}
$percentage = 50.61; // проценты (например, 50%)
$duration = "01:00:00.000"; // длительность видео в формате часы:минуты:секунды.миллисекунды
list($hours, $minutes, $seconds, $milliseconds) = explode(':', str_replace('.', ':', $duration)); // разбиваем длительность видео на части
$durationInSeconds = ($hours * 3600) + ($minutes * 60) + $seconds + ($milliseconds / 1000); // переводим длительность видео в секунды
$time = convertPercentageToTime($percentage, $durationInSeconds); // конвертируем в формат времени
echo $time; // выводим результат в консоль (например, "00:30:00:000" для 50% от 1 часа)