将天时/分转换成时/分

时间:2018-12-25 20:16:50

标签: php datetime time

我有此代码

echo $workedtime->format('d H:i');  //shows 01 10:01

我希望它显示34:01!

我该怎么办?

1 个答案:

答案 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.