我以数据格式(例如
)获取从DB传递的时间的汇总值 "84:00:00"
"14:30:00"
"20:00:00"
"02:00:00"
"120:00:00"
我需要将其转换为整数值,如下所示:
84
14.5
20
2
120
有没有办法实现这一目标(相当简单);据我所知strtotime()如果值大于24:00:00
则返回false答案 0 :(得分:0)
解决方案(感谢@deceze):
if($time != '0') {
list($hours, $minutes) = explode(':', $time);
return $hours + ($minutes / 60);
}
return 0;
答案 1 :(得分:0)
您可以使用TimeToSec()
功能,然后只需将秒数设为3600,您将获得小时数。
function TimeToSec($time) {
$sec = 0;
foreach (array_reverse(explode(':', $time)) as $k => $v) $sec += pow(60, $k) * $v;
return $sec;
}
echo TimeToSec('14:30:00') / 3600;
的 demo 强>
答案 2 :(得分:-2)
PHP的时间函数对你没什么帮助,因为你处理的是持续时间,而不是时间戳
@deceze,你错了:
foreach (['84:00:00', '14:30:00', '20:00:00', '02:00:00', '120:00:00'] as $time)
{
list($h, $m, $s) = explode(':', $time);
$diff = mktime($h, $m, $s) - mktime(0, 0, 0);
print_r($diff / 60 / 60);
}