如何将从数据库中查询的时间除以时间格式。
有什么想法吗?
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
这绝对是错误的,如果我的时间是00:40:00,我会得到一些除零错误。
我无法将其转换为秒,因为php从数据库中的时间格式中获取DateTime。
答案 0 :(得分:2)
我建议您在几秒钟内获得时间,但您需要将分钟和小时转换为秒。
$seconds = date($entity->getTime()->format('s'));
$minutes = date($entity->getTime()->format('i'));
$hours = date($entity->getTime()->format('h'));
$time = $hours * 3600 + $minutes * 60 + $seconds;
$speed = $distance/$time;
答案 1 :(得分:0)
Checkout strtotime()将其转换为秒。
答案 2 :(得分:0)
1)在几秒钟内获得时间
function time2seconds($time='00:00:00')
{
list($hours, $mins, $secs) = explode(':', $time);
return ($hours * 3600 ) + ($mins * 60 ) + $secs;
}
$time = date($entity->getTime()->format('H:i:s'));
$timeInSeconds = time2seconds($time);
$distance = 40000;
$speed = $distance/$timeInSeconds;
2)如果您使用的是MySQL数据库使用功能 TIME_TO_SEC(time)
答案 3 :(得分:0)
使用strtotime
它有点棘手,只能转到24:59:59
。
否则使用Voitcus解决方案。
$time = '00:40:00';
echo strtotime("1970-01-01 $time UTC");
答案 4 :(得分:0)
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
这是错的。你必须这样做:
$speed = $distance/$time * 3.6;
例如,此等式有效30km/H = 30000m * 3600 seconds * 3.6