坚持简单的PHP方程式

时间:2012-08-07 15:32:11

标签: php

我有一个游戏列表和从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";
        }

2 个答案:

答案 0 :(得分:1)

抱歉,它运行正常!
Working demo here

试试这个:

$hoursplayed = (float) $game->hoursOnRecord;

答案 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');
    }