我有一个游戏列表和从XML抓取到foreach
的小时数。他们将时间格式化为1.8小时而不是1小时48分钟。
以下代码中的所有内容均有效,但上一个elseif
除外。它应该抓住超过6分钟但不到60分钟的游戏,转换它,然后在最后添加“分钟”。
现在,它只为所有这些游戏显示“0分钟”。
$hoursplayed = $game->hoursOnRecord;
if ($hoursplayed < .1) {
$zeros = $zeros + 1;
$hoursplayed = 0;}
elseif ($hoursplayed >= 1){
$nonzeros = $nonzeros + 1;
}
elseif ($hoursplayed >= .1 && $hoursplayed < 1) {
$hoursplayed = ($hoursplayed * 60) . " minutes";
}
答案 0 :(得分:1)
答案 1 :(得分:1)
你的代码非常混乱;这就是我写它的方式:
<?php
$hours_float = $game -> hoursOnRecord;
$hours = floor($hours_float);
$minutes = round(($hours_float - $hours) * 60);
if (($hours > 0 || $minutes > 6) && $hours < 1)
{
echo $hours . ' hour' . ($hours === 1 ? '' : 's') . ' ' . $minutes . ' minute' . ($minutes === 1 ? '' : 's');
}