这应该很容易…
持续时间以秒为单位,我想以小时:分钟:秒的格式输出
当我尝试…
// video duration is 1560 seconds
<?=date("h:i:s",$video->duration)?>
…它输出07:26:00而不是00:26:00。所以我想这是时区的问题。
在我的应用程序开始时,我像这样设置时区
date_default_timezone_set('America/Montreal');
现在我想如果我将时区更改为GMT,我会得到我的正常值,但我不想每次都这样做,我想要一个简单的持续时间(并将时区重新设置为美国/蒙特利尔)
我有什么选择?
date用于获取Unix时间戳的人类可读格式,因此它不是您需要的。换句话说,该功能用于显示日期(如12.12.2012),而不是视频的持续时间
对于,您可以创建一个从总秒数开始的函数,并执行类似
的操作$seconds = $total_time %60;
$minutes = (floor($total_time/60)) % 60;
$hours = floor($total_time/3600);
return $hours . ':' . $minutes . ':' . $seconds;
也许你需要调整一下,因为我没有测试它。如果视频很短,有些测试会跳过几个小时或几分钟
这是一个老问题,但我想我可以提供一个答案:
function convert_to_duration($total_time){
$seconds = $total_time %60;
$minutes = (floor($total_time/60)) % 60;
$hours = floor($total_time/3600);
if($hours == 0){
return $minutes . ':' . sprintf('%02d', $seconds);
}else{
return $hours . ':' . $minutes . ':' . sprintf('%02d', $seconds);
}
}