我正在使用我的iTunes资料库从约1,100首mp3中获取数据,而且我正遇到将库的持续时间分为几分钟和几秒钟的小问题。转换MP3持续时间
$duration = 1893642;
$minutes = bcmod(($duration/60), 60);
$seconds = bcmod($duration, 60);
echo $minutes.":".$seconds; //returns 0:42
问题是,这个特定的MP3实际上是31:42。任何想法为什么这不起作用?
我正在使用我的iTunes资料库从约1,100首mp3中获取数据,而且我正遇到将库的持续时间分为几分钟和几秒钟的小问题。转换MP3持续时间
$duration = 1893642;
$minutes = bcmod(($duration/60), 60);
$seconds = bcmod($duration, 60);
echo $minutes.":".$seconds; //returns 0:42
问题是,这个特定的MP3实际上是31:42。任何想法为什么这不起作用?
$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); ?>
从该秒数
返回○点31分42秒所以你说的我秒应该避免`bcmod()`呢?我不明白'bcmod()`做了什么,另一个stackoverflow的人告诉我这样做,因为大多数人看起来工作正常。 – Webnet 2011-02-02 21:49:26