1

我有一个从 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";
        }
4

2 回答 2

1

对不起,但它运行良好!
工作演示在这里

试试这个:

$hoursplayed = (float) $game->hoursOnRecord;
于 2012-08-07T15:39:06.873 回答
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');
    }
于 2012-08-07T15:44:56.730 回答