我有此代码
echo $workedtime->format('d H:i'); //shows 01 10:01
我希望它显示34:01!
我该怎么办?
答案 0 :(得分:0)
您将需要两个变量,其中一个变量用于开始工作时,第二个变量用于完成工作时。
可以通过在UNIX时间戳中获取每个变量的日期来轻松解决此问题。
function timeAgo($startTime, $endTime){
$seconds = strtotime($endTime) - strtotime($startTime);
$minutes = ($seconds / 60) % 60;
$hours = floor($seconds / 60 / 60);
return $hours . ":" . $minutes;
}
$startTime = "2018-12-24 09:00:00";
$endTime = "2018-12-25 15:30:00";
echo timeAgo($startTime, $endTime);
这将返回30:30
如果使用的是DateTime,则可以仅将DateTime输出为UNIX时间戳,而不使用strtotime。 (假设您将DateTime作为函数的参数传递)。
function timeAgo($startTime, $endTime){
$seconds = $endTime->getTimestamp() - $startTime->getTimestamp();
$minutes = ($seconds / 60) % 60;
$hours = floor($seconds / 60 / 60);
return $hours . ":" . $minutes;
}
echo timeAgo($startTime, $endTime); // $startTime and $endTime has to be DateTime.