Преобразовать день, час, минуты, только в часы, минуты - PullRequest
0 голосов
/ 25 декабря 2018

У меня есть этот код

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

Я хочу, чтобы он показывал 34: 01!

Как я могу это сделать?

1 Ответ

0 голосов
/ 25 декабря 2018

Для этого вам понадобятся две переменные, одна из которых предназначена для начала работы, а вторая - для завершения работы.

Эту проблему легко решить, получив дату в 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...