Как получить общее количество минут для отображения как Xhrs, Xmin? - PullRequest
0 голосов
/ 06 октября 2011

Я беру общее количество минут и пытаюсь подсчитать общее количество часов и минут.

Если вы делаете:

$elapsed = "6476"; // Trying to get 107:56 (107 hours, 56 min)

if ($elapsed > 60) { $format = "i:s"; }
if ($elapsed > 3600) { $format = "H:i:s"; } 

$showdiff = gmdate($format, $elapsed);

Проблема с этим в том, что он не работает для расчетов свыше 23 часов 59 минут.

Итак, вы можете сделать простое деление:

$elapsed = $elapsed / 60; // total hours

Только тогда вы получите дробь (в данном случае 107.933333333). Мне нужно сохранить это как часы и минуты. Есть предложения?

Ответы [ 2 ]

2 голосов
/ 06 октября 2011

Вы должны иметь возможность использовать деление (как вы сказали) и деление по модулям, чтобы выполнить то, что вы хотите.

$hours = floor($elapsed / 60);
$minutes = round(($elapsed / 60) % 60);

echo $hours . "hrs " . $minutes . "min";
1 голос
/ 06 октября 2011

вы можете попробовать

$elapsed = $elapsed / 60; // total hours (107.933333333)
$parts = explode(".", $elapsed); // split 107.93333 into 2 parts using the . as a separator
$minutes = $parts[1] // $parts[0] is 107, this will be the .9333
$minutes = $minutes * 60 // = 55.99...
$minutes = round($minutes); // round 55.9999 up to 56
$hours = $parts[0];

echo "$hours hrs $minutes mins";

возможно, можно было бы написать немного лучше, но я извиняюсь, что я устал:)

Это должно дать вам представление и позволить вам делать то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...