Intereting Posts
Как извлечь значение из объекта json с помощью javascript Запрос cURL / PHP Выполняет 50% времени Страница магазина WooCommerce: ввод количества на кнопку добавления в корзину Скомпилированный PHP 7 отсутствует расширение mysql в WordPress Как включить сообщения WordPress в пользовательский файл PHP? Загрузка файла Force Force Массив блока checkbox возвращает NULL Как изменить конфигурацию почты перед отправкой почты в контроллере с помощью Laravel? Плохой фильтр регулярных выражений слов не работает проверьте, существует ли почта в базе данных jquery + php Как выполнить функцию из скрипта Python (с параметрами) в PHP? Застрял в ошибке 2 с mysql, используя XAMPP В PHP есть ли способ захватить вывод файла PHP в переменную без использования буферизации вывода? SQL JOIN – нужно вернуть один идентификатор продукта, но все его варианты (например, размер, цвет) данные не проходят через URL

Преобразование времени продолжительности MP3

Я использую свою библиотеку iTunes, чтобы получить данные из примерно 1100 mp3, и я столкнулся с небольшой проблемой в том, что время библиотеки в минутах и ​​секундах.

$duration = 1893642; $minutes = bcmod(($duration / 60), 60); $seconds = bcmod($duration, 60); echo $minutes.":".$seconds; //returns 0:42 

Проблема в том, что этот конкретный MP3 на самом деле 31:42. Любые мысли о том, почему это не работает?

Related of "Преобразование времени продолжительности MP3"

 $minutes = bcmod(($duration / 60), 60); 

занимает минуты по модулю 60. Если ваш трек больше часа, он всегда будет говорить 0. Вы хотите, чтобы это было

 $minutes = floor($duration / 60); 

Попробуйте эту функцию

 function formatTime($secs) { $times = array(3600, 60, 1); $time = ''; $tmp = ''; for($i = 0; $i < 3; $i++) { $tmp = floor($secs / $times[$i]); if($tmp < 1) { $tmp = '00'; } elseif($tmp < 10) { $tmp = '0' . $tmp; } $time .= $tmp; if($i < 2) { $time .= ':'; } $secs = $secs % $times[$i]; } return $time; } 

Не уверен, была ли доступна следующая функция, когда этот вопрос был написан, но поскольку это вопрос, который я задавал себе, так и здесь.

Я использовал ответ выше:

 $seconds = bcmod($row{'playtime_seconds'}, 60); $minutes = floor($row{'playtime_seconds'} / 60); $hours = floor($minutes / 60); 

Которая работает в большинстве случаев, но нет прокладки – так что вы можете закончиться с 20: 1, когда это должно быть 20:01 – и это не хорошо в течение часа – одна длина длится = «1: 70: 9 ", поэтому альтернативой является использование функции« дата ».

 <?=date("H:i:s", $duration); ?> 

который возвращает 00:31:42 с этого количества секунд