如何将小数除以从数据库中查询的时间作为时间格式。
任何想法?
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
这绝对是错误的,如果我的时间是 00:40:00,我会得到一些除以零的错误。
我无法将其转换为秒,因为 php 从数据库中的时间格式获取 DateTime。
如何将小数除以从数据库中查询的时间作为时间格式。
任何想法?
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
这绝对是错误的,如果我的时间是 00:40:00,我会得到一些除以零的错误。
我无法将其转换为秒,因为 php 从数据库中的时间格式获取 DateTime。
我建议您以秒为单位获取时间,但您需要将分钟和小时转换为秒。
$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;
签出 strtotime() 以将其转换为秒。
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)
有了strtotime
它有点棘手,只去24:59:59
. 否则使用 Voitcus 溶液。
$time = '00:40:00';
echo strtotime("1970-01-01 $time UTC");
$time = date($entity->getTime()->format('H:i:s'));
$speed = $distance/$time
这是错的。你必须这样做:
$speed = $distance/$time * 3.6;
例如这个等式是有效的30km/H = 30000m * 3600 seconds * 3.6