我需要将秒转换为“小时:分钟:秒”。
例如:“685”转换为“00:11:25”
我怎样才能做到这一点呢?
我需要将秒转换为“小时:分钟:秒”。
例如:“685”转换为“00:11:25”
我怎样才能做到这一点呢?
当前回答
你可以使用gmdate()函数:
echo gmdate("H:i:s", 685);
其他回答
我已经在这里解释过了 把答案也粘贴到这里
在23:59:59小时之前,您可以使用PHP默认函数
echo gmdate("H:i:s", 86399);
只会返回结果直到23:59:59
如果你的秒数大于86399 在@VolkerK的帮助下回答
$time = round($seconds);
echo sprintf('%02d:%02d:%02d', ($time/3600),($time/60%60), $time%60);
将是使用…的最佳选择。
写这样的函数返回一个数组
function secondsToTime($seconds) {
// extract hours
$hours = floor($seconds / (60 * 60));
// extract minutes
$divisor_for_minutes = $seconds % (60 * 60);
$minutes = floor($divisor_for_minutes / 60);
// extract the remaining seconds
$divisor_for_seconds = $divisor_for_minutes % 60;
$seconds = ceil($divisor_for_seconds);
// return the final array
$obj = array(
"h" => (int) $hours,
"m" => (int) $minutes,
"s" => (int) $seconds,
);
return $obj;
}
然后像这样简单地调用函数:
secondsToTime(100);
输出是
Array ( [h] => 0 [m] => 1 [s] => 40 )
仅当秒数小于86400(1天)时使用函数gmdate():
$seconds = 8525;
echo gmdate('H:i:s', $seconds);
# 02:22:05
参见: gmdate()
运行Demo
将秒转换为“脚”格式无限制*:
$seconds = 8525;
$H = floor($seconds / 3600);
$i = ($seconds / 60) % 60;
$s = $seconds % 60;
echo sprintf("%02d:%02d:%02d", $H, $i, $s);
# 02:22:05
参见:floor(), sprintf(),算术运算符
运行Demo
DateTime扩展的示例使用:
$seconds = 8525;
$zero = new DateTime("@0");
$offset = new DateTime("@$seconds");
$diff = $zero->diff($offset);
echo sprintf("%02d:%02d:%02d", $diff->days * 24 + $diff->h, $diff->i, $diff->s);
# 02:22:05
参见:DateTime::__construct(), DateTime::modify(), clone, sprintf ()
运行Demo
MySQL示例的结果范围被限制为TIME数据类型,从-838:59:59到838:59:59:
SELECT SEC_TO_TIME(8525);
# 02:22:05
看:SEC_TO_TIME
运行Demo
PostgreSQL的例子:
SELECT TO_CHAR('8525 second'::interval, 'HH24:MI:SS');
# 02:22:05
运行Demo
如果你需要在javascript中做到这一点,你可以在这里回答的一行代码中做到这一点,用javascript将秒转换为HH-MM-SS。用您想要转换的内容替换SECONDS。
var time = new Date(SECONDS * 1000).toISOString().substr(11, 8);
See:
/**
* Convert number of seconds into hours, minutes and seconds
* and return an array containing those values
*
* @param integer $inputSeconds Number of seconds to parse
* @return array
*/
function secondsToTime($inputSeconds) {
$secondsInAMinute = 60;
$secondsInAnHour = 60 * $secondsInAMinute;
$secondsInADay = 24 * $secondsInAnHour;
// extract days
$days = floor($inputSeconds / $secondsInADay);
// extract hours
$hourSeconds = $inputSeconds % $secondsInADay;
$hours = floor($hourSeconds / $secondsInAnHour);
// extract minutes
$minuteSeconds = $hourSeconds % $secondsInAnHour;
$minutes = floor($minuteSeconds / $secondsInAMinute);
// extract the remaining seconds
$remainingSeconds = $minuteSeconds % $secondsInAMinute;
$seconds = ceil($remainingSeconds);
// return the final array
$obj = array(
'd' => (int) $days,
'h' => (int) $hours,
'm' => (int) $minutes,
's' => (int) $seconds,
);
return $obj;
}
From:将秒转换为日、时、分和秒