Я пытаюсь решить проблему, в которой мне нужно иметь возможность преобразовать время в секундах с десятичными знаками, такими как 375.844
Мне нужно преобразовать его в следующий формат:
HH:MM:SS.0
вместо округления до ближайшей целой секунды
Я считаю, что число выше должно отображаться как 00:06:15.8
Это часть более широкой программы, в которой пользователь вводит часы, минуты и секунды с точностью до десятых долей секунды.
Я конвертирую все это в секунды, используя следующую функцию:
public function timetosecs() {
return $this->hours * (60 * 60) + $this->mins * 60 + $this->secs * 1;
}
Затем он выполняет некоторые вычисления в секундах для их корректировки, умножая на коэффициент 0.866
, а затем это функция для преобразования их обратно в формат времени, однако, похоже, он не отображает десятые доли.
public function secstotime($totalSeconds) {
$hours = floor($totalSeconds / 3600);
$totalSeconds %= 3600;
$minutes = floor($totalSeconds / 60);
$seconds = floor(($totalSeconds % 60) * 10) / 10;
return $hours . ":" . $minutes . ":" . $seconds;
}